【问题标题】:PHP: Zend_Layout: Where to write business logic?PHP:Zend_Layout:在哪里写业务逻辑?
【发布时间】:2010-02-02 11:04:29
【问题描述】:

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

有时我的布局中需要一些特定于布局的数据,而不是特定于页面的数据。不过,使用哪种布局,是特定于页面的。

因此,引导程序或动作控制器将是选择布局的好地方。但恕我直言,它们不是是注入特定布局期望的数据的好地方。

我能想到的唯一其他地方就是在布局视图脚本本身中编写一些业务逻辑。虽然这也是我不想做的事情:)

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

-- 更新

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

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

【问题讨论】:

  • 您能举一个特定于布局的业务逻辑的例子吗?

标签: php zend-layout


【解决方案1】:

这样的事情最好由 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做这种工作的。

【讨论】:

  • 非常感谢您提供额外信息的链接。帮了我很多忙。
猜你喜欢
  • 1970-01-01
  • 2020-07-10
  • 1970-01-01
  • 2011-08-02
  • 2011-12-26
  • 2011-06-01
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多