Zend_View_Helper与Zend查看部分脚本

时间:2011-05-25 01:39:14

标签: zend-framework zend-view

这是我的岔路。

我想在我的网页上显示某种按钮,我想在很多地方做这件事。这个“按钮”实际上就像是指向其他页面的链接,所有按钮实例都会转到一页。

我希望所有的按钮都是相同的,除了它们的大小。

现在,我应该使用带有按钮的html的部分脚本并调用部分视图助手进行渲染,还是应该创建一个Zend_View_Helper,当我调用它时会返回按钮的html?

我知道我可以摆动,但你觉得哪个更好?

我看到的一些事情:

  1. 帮助器可能更好,因为它不必像Zend_View的克隆那样创建一个BIG对象来执行局部操作。

  2. 部分脚本对于html人员来说更容易使用。

3 个答案:

答案 0 :(得分:9)

使用 $ this-> render()代替$ this-> partial()。

仅在需要对范围进行更多控制时才使用partials。就像你说的那样,它有很多开销,因为它必须创建一个新的Zend_View实例。使用渲染不会。

为了触及您的实际问题,我建议在视图助手上使用渲染(或部分),因为它可以更简单地设计,并且开销更少。查看帮助程序用于自定义功能。

一个好的经验法则是:您想要包含内容/ html,还是要生成内容/应用转换?助手是针对后者的。

答案 1 :(得分:1)

根据您的描述,我建议您使用partial来完成任务。原因是你的按钮似乎主要是html,没有太多的PHP。你可以将大小传递给partial,那就是它。但是,如果您想在生成按钮时包含更多逻辑(例如数据库,auth或acl查询),我建议您查看帮助器。

P.S。 第三种选择是使用局部和视图助手,可能不是针对这种特殊情况,但更一般意义上说。你可以拥有对php部分做的帮助,这个助手调用partial来返回所需的html。

答案 2 :(得分:1)

每当我需要非常参数化的值时,我倾向于使用视图助手。例如:

echo $this->button('Button Text', '/foo/bar/baz');

看起来好多了:

$this->buttonText = 'Button Text';
$this->buttonUrl = '/foo/bar/baz';
echo $this->render('button.phtml');

此外,您无法在视图助手中呈现视图脚本。