在大多数项目中,我使用多个布局脚本。
有时我的布局中需要一些特定于布局而不是特定于页面的数据。但是,使用哪种布局,是特定于页面的。
因此,引导程序或动作控制器将是选择布局的好地方。但是恕我直言,它们不是注入特定布局期望的数据的好地方。
我能想到的唯一其他地方就是在布局视图脚本本身中编写一些业务逻辑。虽然那是我宁愿不做的事情:)
您在哪里编写特定于布局的业务逻辑?
-更新:
特定于布局的业务逻辑可以是;
- 当前登录用户的用户名
- 用户收件箱中的新邮件数量
- 随机“你知道..?” 小费
在大多数项目中,我使用多个布局脚本。
有时我的布局中需要一些特定于布局而不是特定于页面的数据。但是,使用哪种布局,是特定于页面的。
因此,引导程序或动作控制器将是选择布局的好地方。但是恕我直言,它们不是注入特定布局期望的数据的好地方。
我能想到的唯一其他地方就是在布局视图脚本本身中编写一些业务逻辑。虽然那是我宁愿不做的事情:)
您在哪里编写特定于布局的业务逻辑?
-更新:
特定于布局的业务逻辑可以是;
像这样的东西最好由 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如何进行此类工作以获取更多信息。