Zend框架 - 在呈现布局之前执行的最后一个代码

时间:2010-02-12 16:10:48

标签: php zend-framework zend-view zend-layout

我希望在执行所有其他代码之后,在呈现布局之前执行一些代码。我会把代码放在哪里?

我特意尝试修改headLink,headScript和inlineScript视图助手中引用的文件,然后再将它们用于布局。

以下是我要采取的步骤:

  1. 遍历这些视图助手中的文件
  2. 制作本地文件列表
  3. 从视图帮助程序中删除本地文件
  4. 将本地文件列表作为参数引用到服务器脚本,该脚本将它们组合为单个HTTP请求
  5. 将新的合并脚本引用添加到相应的视图助手

  6. 前端控制器插件似乎无法帮助我实现这一目标,原因如下:

    1. postDispatch()在执行的每个控制器操作后执行,我需要样式表/ javascripts的完整列表
    2. dispatchLoopShutdown()在控制器动作循环后执行,但此时已经渲染了布局

    3. 正如Rufinus建议的那样,我通过扩展View Helpers来解决这个问题。 My question from that angle as well as the solution is here

1 个答案:

答案 0 :(得分:13)

ZF1 Dispatch Process Overview (c) by Thorsten Ruf

Orginal PDF created by Thorsten RufMirror

您可以通过插件访问的最后一部分应该是dispatchLoopShutdown

编辑: 对于ZendFramework2,请参阅http://zendframework2.de/en/cheat-sheet.htmlthis gdoc