Gre*_*een 4 php bootstrapping zend-framework
我正在阅读Zend Framework手册,无法理解bootstrapping在ZF和一般情况下的工作原理.他们写:
您的Bootstrap类定义要初始化的资源和组件.
好.这意味着首先应该实例化Bootstrap类.但后来他们写了配置ini文件.并且有关于Bootstrap类本身的指令:
1. bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
2. bootstrap.class = "Bootstrap"
Run Code Online (Sandbox Code Playgroud)
因此,据我所知,这意味着它首先不是Bootstarp实例化的类.首先,必须阅读配置文件,获取有关Bootstrap类的信息并将该信息实例化.否则,无需Bootstrap在配置文件中获得有关该类的信息.因为我可以这样做:
require_once(/application/bootstrap.php)
$b = new Bootstrap();
Run Code Online (Sandbox Code Playgroud)
和Bootstrap实例化.
但他们对于读取配置文件然后创建该实例的实例一无所知Bootstrap.
APPLICATION_PATH是一个常数.必须先定义一个常量才能使用它.如果在Bootstrap类中使用它,可以在哪里定义?谢谢.
如果你查看index.phpZF附带的文件,这应该回答大多数问题.
该APPLICATION_PATH常数被定义在index.php,并且这也是其中Zend_Application对象被创建,其简单地自举的应用程序,然后执行它.
有两种方法可以告诉你Zend_Application的引导程序在ZF1中的位置.
第一种方式(明确设置):
$application = new Zend_Application(
APPLICATION_ENV,
array(
'bootstrap' => array(
'class' => 'Bootstrap',
'path' => APPLICATION_PATH . '/Bootstrap.php',
),
'config' => APPLICATION_PATH . '/configs/application.ini',
)
);
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,引导类和引导脚本作为$options直接Zend_Application构造函数的一部分与application.ini文件一起传递.
如果你将bootstrap类和脚本放在你的application.ini文件中,那么你可以这样初始化Zend_Application:
$application = new Zend_Application(
APPLICATION_ENV,
array('config' => APPLICATION_PATH . '/configs/application.ini')
);
Run Code Online (Sandbox Code Playgroud)
Zend_Application将处理application.ini文件并从那里收集Bootstrap信息.
然后,您可以调用$application->bootstrap()->run();以运行该应用程序.
直接回答你的问题:
ini完文件后,这是第一件事.这将为您的ZF应用程序设置所有必需的组件(例如Front Controller,Zend_View,Layouts,DB connection等).APPLICATION_PATH 在index.php中立即定义| 归档时间: |
|
| 查看次数: |
5948 次 |
| 最近记录: |