Php 所有模块引导始终在一个请求上运行
我有两个模块:admin,default。 每个都有一个引导:Php 所有模块引导始终在一个请求上运行,php,zend-framework,module,bootstrapping,Php,Zend Framework,Module,Bootstrapping,我有两个模块:admin,default。 每个都有一个引导: class Admin_Bootstrap extends Zend_Application_Module_Bootstrap { function _initSmth() { echo 'admin'; die(); } } 默认值是: class Default_Bootstrap extends Zend_Application_Module_Boots
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
{
function _initSmth()
{
echo 'admin';
die();
}
}
默认值是:
class Default_Bootstrap extends Zend_Application_Module_Bootstrap
{
function _initSmth()
{
echo 'default';
die();
}
}
如果我运行site.ru或site.ru/admin/它总是返回“admin”。
为什么默认引导与管理引导一起运行?是的,Zend就是这样工作的。如果在应用程序配置中启用模块资源(尤其是application.ini) 所有模块都在引导时引导。如果要根据请求路由到的模块切换行为,可以使用控制器插件进行计划 考虑到知道哪个模块/控制器/操作的第一个钩子是routeShutdown,但是根据您需要做什么,您可以使用其他钩子 这里有一个例子
Plugin_Test extends Zend_Controller_Plugin_Abstract {
public function routeShutdown (Zend_Controller_Request_Abstract $request){
switch($request->getModuleName()) {
case 'default':
// do something
break;
case 'admin':
// do something else
}
}
您是否检查过site.ru实际上没有使用管理模块?检查请求对象,看看它首先使用的是什么模块/控制器/操作。是的,我使用了。它默认索引控制器在$this->getRequest()->getModuleName()上返回“default”。管理员索引控制器返回“admin”。
Plugin_Test extends Zend_Controller_Plugin_Abstract {
public function routeShutdown (Zend_Controller_Request_Abstract $request){
switch($request->getModuleName()) {
case 'default':
// do something
break;
case 'admin':
// do something else
}
}