Zend framework Zend配置继承
我的application.ini中有这些值Zend framework Zend配置继承,zend-framework,zend-config,Zend Framework,Zend Config,我的application.ini中有这些值 [production] ; Database; resources.db.adapter = "pdo_mysql" resources.db.params.host = "localhost" resources.db.params.username = "user1" resources.db.params.password = "password1" resources.db.params.dbname
[production]
; Database;
resources.db.adapter = "pdo_mysql"
resources.db.params.host = "localhost"
resources.db.params.username = "user1"
resources.db.params.password = "password1"
resources.db.params.dbname = "projects__01"
;Names
website.settings.websiteName = "My website 1"
website.settings.websiteUrl = "http://www.mydomain1.com"
website.settings.title = "mydomain.com - mydomain"
website.settings.titleSeperator = " - "
[staging : production]
; Database;
resources.db.adapter = "pdo_mysql"
resources.db.params.host = "localhost"
resources.db.params.username = "user2"
resources.db.params.password = "password2"
resources.db.params.dbname = "projects__02"
;Exceptions
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
;Title and url
website.settings.websiteName = "My website 2"
website.settings.websiteUrl = "http://www.mydomain2.com"
[development : staging]
;Database
resources.db.adapter = "pdo_mysql"
resources.db.params.host = "localhost"
resources.db.params.username = "user3"
resources.db.params.password = "password3"
resources.db.params.dbname = "projects__03"
;Title and url
website.settings.websiteName = "My website 3"
website.settings.websiteUrl = "http://www.mydomain3.com"
问题是所有数据库和异常值都正常工作,这意味着它们按照预期的方式正确继承
但是我为Title和url设置的值没有正确继承,只使用了第一个定义的值
为什么会这样?这是故意的吗?是否只继承预定义/标准环境值(如数据库和异常)
或者我在什么地方出错了?好吧,从你的评论来看,你好像在引导中创建一个新的Zend_Config对象,把它放在注册表中,但它并没有返回你期望的结果。如果是这种情况,我猜您省略了config对象上的第二个参数,因此您有如下内容:
$config = new Zend_Config_Ini(APPLICATION_PATH.'/configs/application.ini');
$config = new Zend_Config_Ini(APPLICATION_PATH.'/configs/application.ini', APPLICATION_ENV);
但你应该拥有的更像这样:
$config = new Zend_Config_Ini(APPLICATION_PATH.'/configs/application.ini');
$config = new Zend_Config_Ini(APPLICATION_PATH.'/configs/application.ini', APPLICATION_ENV);
第二个参数告诉它要使用配置文件的哪个部分,否则它将始终获得相同的值
然而,您实际上不需要重新解析配置文件,因为Zend应用程序已经完成了这项工作。相反,您可以从引导类访问选项,并使用这些选项创建对象(或仅以现有数组格式存储选项):
这应该是你所期望的
如果我的猜测是错误的,请您编辑您的问题,以包括引导程序中创建配置对象并将其存储在注册表中的相关部分。您如何访问标题/url?$this->getConfig()->website->settings->websiteUrl;而且它在任何地方都会回来。getConfig get是我放在bootstrap.php的Zend_注册表中的配置的一个实例,就是它,bootstrap中的额外参数。谢谢