6

这是我的岔路口。

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

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

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

我知道我可以摆动任何一种方式,但你认为哪个更好?

我看到的一些事情:

  1. 助手可能会更好,因为它不必创建像 Zend_View 的克隆这样的 BIG 对象来执行部分操作。

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

4

3 回答 3

9

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

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

为了解决您的实际问题,我建议在视图助手上使用渲染(或部分),因为它对设计的使用要简单得多,而且开销也更少。视图助手用于自定义功能。

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

于 2011-05-25T04:14:51.423 回答
1

根据您的描述,我建议您使用 partial 来完成您的任务。原因是你的按钮似乎主要是html,没有太多的php。您可以将大小传递给部分,就是这样。但是,如果您想在按钮的生成中包含更多逻辑(例如数据库、auth 或 acl 查询),我建议您使用视图助手。

ps 第三个选项是同时使用 partial 和 view helper,可能不适用于这种特殊情况,但在更一般的意义上。您可以拥有对 php 部分执行操作的助手,并且此助手调用 partial 以返回所需的 html。

于 2011-05-25T05:06:42.463 回答
1

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

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

看起来比:

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

此外,没有理由不能从视图助手中呈现视图脚本。

于 2011-05-25T05:58:59.887 回答