我非常熟悉Zend Framework的详细信息以及大多数工作原理。我仍然不完全理解的一个领域是Zend Framework从application.ini加载资源的方式。
我知道我可以创建自己的protected _init函数,这些函数会在bootstrap期间自动调用。
Zend Framework文档在某些方面缺乏。
例如:resources.db配置选项如何以及何时加载?我的引导程序中没有任何关于db的内容。这是按需加载还是实际在引导过程中加载?
任何解释这一点的参考链接都会非常有用。
答案 0 :(得分:10)
您的引导类最终继承自Zend_Application_Bootstrap_BootstrapAbstract
。此类中的bootstrap()
方法首先搜索前缀为_init
的类方法,然后运行这些方法。然后它会查找资源插件,这些插件由options数组的“resources”部分填充。 options数组来自传递给Zend Application的配置,它通常来自application.ini。
资源插件映射到文件系统上的类。因此,默认情况下resources.db
将创建Zend_Application_Resource_Db
的实例并运行它(它依次设置相关的数据库内容)。这里有完整的内置资源列表:http://framework.zend.com/manual/en/zend.application.available-resources.html
所有应用程序资源都在引导过程中运行,除非您告诉引导程序仅初始化特定的。
有一个相当详细的概述,它们在文档中是如何组合在一起的:http://framework.zend.com/manual/en/zend.application.theory-of-operation.html,但除非你的要求有点习惯,否则你真的不需要知道细节。