PHP:Zend_Layout:在哪里编写业务逻辑?

时间:2010-02-02 11:04:30

标签: php zend-layout

在大多数项目中,我使用多个布局脚本。

有时我需要布局中的某些数据,这些数据是特定于布局的,而不是特定于页面的。虽然使用了哪种布局,但是特定于页面。

因此bootstrap或actioncontroller是选择布局的好地方。但恕我直言,他们是注入特定布局所期望的数据的好地方。

我能想到的另一个地方就是在布局视图中自己编写一些业务逻辑。虽然这是我不想做的事情:)

您在哪里编写特定于布局的业务逻辑?

- 更新

特定于布局的业务逻辑可以是;

  • 当前登录用户的用户名
  • 用户收件箱中的新邮件数量
  • 随机“你知道吗??”尖

1 个答案:

答案 0 :(得分:2)

这样的东西最好从ViewHelper

完成
class ViewHelper_RandomTip
{
    public function randomTip()
    {
         $tip = TipsModel::getRandom();
         return "<div><h1>Random Tip</h1><p>$tip</p></div>");
    }
    // ...
}

然后在您的布局中,将其与

一起使用
echo $this->randomTip();

请注意,这是不打算在任何地方运行的示例代码。您是如何从Helper访问模型的,以及如何返回内容完全取决于您。您还必须找到一个方法来使用布局注册ViewHelpers。并且会有人告诉你,你可能无法从View访问该模型(这是错误的)

另请参阅以下相关问题:

并查看Zend Framework further information对{{3}}的工作方式。