我从Zend Framework开始,我想了解Bootstrap文件.我已经知道所有_init
方法都是默认执行的,但这对我来说似乎很困惑.无论如何,这不是我想问的问题.
A围绕着这个$this->bootstrap('layout');
动作,我不确定我是否理解这一点.这是application.ini文件中的resource.layout变量吗?我想深入了解bootstrap过程.
我问你一步一步的解释. 提前致谢!
所以这是我的bootstrap文件:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { protected function _initAutoload() { $moduleLoader = new Zend_Application_Module_Autoloader(array( 'namespace' => '', 'basePath' => APPLICATION_PATH )); return $moduleLoader; } function _initViewHelpers() { $this->bootstrap('layout'); $layout = $this->getResource('layout'); $view = $layout->getView(); $view->doctype('XHTML1_STRICT'); $view->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8'); $view->headTitle()->setSeparator(' - '); $view->headTitle('Zend Framework Tutorial'); } }
takeshin.. 6
来自的线 application.ini
resources.layout[] =
相当于:
_initLayout() {}
在 Bootstrap.php
它们都是初始化新对象,并且此对象设置为bootstrap
param,它是某些应用程序资源的容器(_init
方法返回的值).
逐个执行,因此为了确保在当前资源之前初始化一个资源,您可以使用以下命令强制执行以下命令:
_initSomeResource() { $this->bootstrap('otherResource'); // .. return $someValue; } _initOtherResource() { // .. }
因此,实例化资源的顺序是:
otherResource
someResource
现在,您也可以使用:
$bootstrap->getParam('someResource'); // returns $someValue
请注意,Circular Dependency
当您尝试在每个之前执行彼此时,您可能会遇到错误.
您可以使用_init
所需的方法,但为了使它们可重用,您可以将它们分离到自己的类,实现Zend_Application_Resource_Abstract
类.
有一些现成的应用程序资源,您可以在Zend/Application/Resource
目录中找到它们.这些是您所引用的资源application.ini
,即:
resources.view.encoding = "utf-8" ; in application.ini Zend/Application/Resource/View.php (path to the resource class) Zend_Application_Resource_View::setEncoding('UTF-8'); // equivalent pseudocode
希望现在更清楚了.
来自的线 application.ini
resources.layout[] =
相当于:
_initLayout() {}
在 Bootstrap.php
它们都是初始化新对象,并且此对象设置为bootstrap
param,它是某些应用程序资源的容器(_init
方法返回的值).
逐个执行,因此为了确保在当前资源之前初始化一个资源,您可以使用以下命令强制执行以下命令:
_initSomeResource() { $this->bootstrap('otherResource'); // .. return $someValue; } _initOtherResource() { // .. }
因此,实例化资源的顺序是:
otherResource
someResource
现在,您也可以使用:
$bootstrap->getParam('someResource'); // returns $someValue
请注意,Circular Dependency
当您尝试在每个之前执行彼此时,您可能会遇到错误.
您可以使用_init
所需的方法,但为了使它们可重用,您可以将它们分离到自己的类,实现Zend_Application_Resource_Abstract
类.
有一些现成的应用程序资源,您可以在Zend/Application/Resource
目录中找到它们.这些是您所引用的资源application.ini
,即:
resources.view.encoding = "utf-8" ; in application.ini Zend/Application/Resource/View.php (path to the resource class) Zend_Application_Resource_View::setEncoding('UTF-8'); // equivalent pseudocode
希望现在更清楚了.