Jay*_*att 2 php zend-framework
我的应用程序有以下目录结构:
application
modules
default
controllers
models
views
Bootstrap.php
test
controllers
models
views
Bootstrap.php
Run Code Online (Sandbox Code Playgroud)
以下是模块特定引导程序文件的代码:
//default/bootstrap.php
class Default_Bootstrap extends Zend_Application_Module_Bootstrap
{
protected function _initMessageDefault(){
echo "called default module's bootstrap file";
}
}
//test/bootstrap.php
class Test_Bootstrap extends Zend_Application_Module_Bootstrap
{
protected function _initMessageTest(){
echo "called test module's bootstrap file";
}
}
Run Code Online (Sandbox Code Playgroud)
现在如果我调用默认控制器即www.domain.com/index,我可以看到以下输出:
called default module's bootstrap file
called test module's bootstrap file
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么两个模块的bootstrap文件被调用?当我调用默认模块时,不应该只调用默认模块的boostrap文件吗?
这是一个错误还是我做错了什么?
感谢您的帮助.
这是有意的.Bootstraps用于应用程序初始化,所有bootstraps都在每个请求上运行.
如果您只想为当前模块做些什么,那么您可能需要的是一个控制器插件.这些也可以在每个请求上运行,但您可以检查其中的当前模块,然后运行一些自定义代码.