新随笔  :: 联系 :: 订阅 订阅  :: 管理

zend_application

Posted on 2011-08-27 20:42  张贺  阅读(673)  评论(0编辑  收藏  举报

Zend_Application

主要提供一些程序的初始化,包括资源的重用,对共通类和基于模块初始化的类的一些检查,同时还会配置php的环境变量以及引进默认的autoloading。
使用zend_application,首先需要创建一个引导(Bootstrap)类,同时创建一个相关的配置文件。
使用 zf.bat create project newproject命令创建的应用程序结构会自动包含一个引导类和一个配置文件,配置文件中的所有设置都是供Zend_Application和引导类来使用的。
可以通过更改configuration文件来追加资源的调用,例:
resources.layout.layout = "layout"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
在程序初始化的时候追加layout资源
Zend_Application 载入php环境设置,包括include_path以及autoloading,以及实例化被调用的引导类
Zend_Application_Bootstrap:为引导类提供接口
Zend_Application_Bootstrap_Bootstrap:提供大部分引导类所需的共通功能
Zend_Application_Resource:除了几个默认的资源,在需要时通过引导实例载入一个标准的引导资源
程序引导类会继承Zend_Application_Bootstrap_Bootstap或实现Zend_Application_Bootstrap_Bootstrapper功能。程序入口将会读取Zend_Application,实例化它同时传递2个参数。
·环境定义(即application.ini中的配置选项,如:production、staging或testing)
·初始化配置选项
环境定义是一个自定义的字符串
配置选项可以是一个数组、Zend_Config对象或者一个配置文件的路径
Zend_Application另一个重要的作用是实现了Zend_Application_Bootstrap_Bootstrapper程序引导接口
接口如下:

interface Zend_Application_Bootstrap_Bootstrapper
{
public function __construct($application);
public function setOptions(array $options);
public function getApplication();
public function getEnvironment();
public function getClassResources();
public function getClassResourceNames();
public function bootstrap($resource = null);
public function run();
}

可以通过向这个接口传递application对象访问和配置程序环境,为引导程序提供资源,同时引导并执行程序。
可以通过继承Zend_Application_Bootstrap_BootstrapAbstract抽象类或使用Zend_Application_Bootstrap_Bootstrap类来实现上述功能。

实例化并运行application

/**
* 根据application.ini配置文件中的
* bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
* bootstrap.class = "Bootstrap"
* 自动查找引导类并运行
*/
//执行引导程序,并运行
$application->bootstrap()
->run();