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

Son*_*nny 1 php zend-framework zend-view zend-layout

在执行所有其他代码之后,我想在渲染布局之前执行一些代码.我会把那些代码放在哪里?

我特意尝试在布局使用之前修改headLink,headScript和inlineScript视图助手中引用的文件.

以下是我要采取的步骤:

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

看起来Front Controller插件不会帮助我实现这个目标,原因如下:

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

正如Rufinus建议的那样,我通过扩展View Helpers来解决这个问题. 从这个角度我的问题以及解决方案就在这里.

Ruf*_*nus 13

ZF1调度过程概述(c)作者:Thorsten Ruf

看看由Thorsten Ruf (镜子)创建的原始PDF

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

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