我注意到Zend Framework的bootstrap有些有趣。我创建了一个新项目然后使用
zf启用布局
启用布局引擎。它开箱即用,哇!
但后来我尝试在bootstrap中创建一个名为_initLayout
的函数来设置一些选项。有趣的是,这似乎再次禁用了布局,即使函数体实际上是空的。不会抛出任何错误,但不再使用布局脚本(例外情况是我实际再次设置选项并手动调用Zend_Layout::startMvc()
)。
将函数重命名为其他任何内容,例如_initFoo
,使布局再次起作用。
所以,我的问题是:这是一个Zend Framework以某种方式识别的函数名称,并且应用了额外的操作,例如从application.ini中取消布局配置?是否有其他情况我应该避免引导程序中的某些_init*
函数名称?
答案 0 :(得分:3)
Bootstrap的主要用途是设置应用程序使用的资源。这些可以通过配置文件(resources.resourcename.foo
)中的行设置,也可以通过引导类(_initResourceName()
)中的方法设置。我假设zf enable layout
已向application.ini添加了一些resources.layout.*
行。通过向引导程序添加_initLayout
方法,ZF将使用它来设置配置行的布局资源而不是。
还有其他情况我应该在bootstrap中避免使用某些_init *函数名吗?
资源插件详见手册:http://framework.zend.com/manual/en/zend.application.available-resources.html,_init<resourcename>()
将始终覆盖配置中的任何相应行。