2

我的应用程序具有以下目录结构:

application
   modules
      default
        controllers
        models
        views
        Bootstrap.php
     test
       controllers
       models
       views
       Bootstrap.php

以下是模块特定引导文件的代码:

//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";
  }
}

现在,如果我调用默认控制器即 www.domain.com/index 我可以看到以下输出:

called default module's bootstrap file
called test module's bootstrap file

我的问题是为什么两个模块的引导文件都被调用?当我调用默认模块时,不应该只调用默认模块的 boostrap 文件吗?

这是一个错误还是我做错了什么?

提前感谢您的帮助。

4

1 回答 1

7

这是有意的。引导程序用于应用程序初始化,所有引导程序都在每个请求上运行。

如果您只想为当前模块做某事,您可能想要一个控制器插件。这些也会在每个请求上运行,但您可以在其中检查当前模块,然后运行一些自定义代码。

于 2013-06-21T19:14:01.680 回答