0

我是 zend 框架的新手,并试图了解引导程序的工作原理。到目前为止,我已经了解 Zend_Application 加载 PHP 环境,设置包含路径,配置自动加载器,然后调用 Bootstrap 类的引导方法。

Bootstrap 方法执行所有资源方法 (_init*()),然后执行资源插件。

我的问题是如果我使用资源方法和资源插件配置相同的资源会发生什么?下面的例子:

//Bootstrap resource method
    protected function _initLayout(){
          $this->bootstrap('layout');
          $layout = $this->getResource('layout');
          $layout->setLayout('index');
    }

//Bootstrap resource plugin
resources.layout.layout = "main"

目前资源插件是在资源方法之后调用的,所以这应该覆盖我的布局并将其设置为“main”,但这不会发生。

插件资源不应该覆盖我们资源方法的设置吗?

我应该使用什么来引导资源方法或资源插件?

谢谢你的帮助。

4

1 回答 1

1

引导类不会引导已经执行的资源,因此在您的示例中,资源插件不会运行,因为您通过类方法创建了“布局”资源。如果您更改方法的名称,它将按预期工作。

我会避免创建与插件名称匹配的 _init 方法,因为它会导致不可预知的问题。

我应该使用什么来引导资源方法或资源插件?

您可以使用任何一种,因此主要取决于个人喜好。我建议坚持一种方法,或者可能有一个约定,比如使用资源插件来配置标准 ZF 事物和自定义应用程序资源的方法。

于 2013-07-15T11:06:31.637 回答