问题
I want to execute some code right before the layout is rendered, after all other code is executed. Where would I put that code?
I am specifically trying to modify the files referenced in the headLink, headScript, and inlineScript view helpers before they're used by the layout.
Here are the steps I want to take:
- Loop over the files in those view helpers
- Make a list of the local files
- Remove local files from the view helpers
- Reference the local file list as a parameter to a server script that combines them for a single HTTP request
- Add that new combine script reference to the appropriate view helper
It doesn't appear that a Front Controller Plugin is going to help me accomplish this, and here's why:
postDispatch()
gets executed after every controller action that's executed, and I need the full list of stylesheets/javascriptsdispatchLoopShutdown()
gets executed after the controller action loop, but the layout has already been rendered at this point
As Rufinus suggested, I solved this by extending the View Helpers. My question from that angle as well as the solution is here.
回答1:
see Orginal PDF created by Thorsten Ruf (Mirror)
the very last part you can access via plugin should be dispatchLoopShutdown
EDIT: For ZendFramework2 see http://zendframework2.de/en/cheat-sheet.html or this gdoc
来源:https://stackoverflow.com/questions/2253170/zend-framework-last-code-to-execute-before-layout-is-rendered