Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework Zend配置继承_Zend Framework_Zend Config - Fatal编程技术网

Zend framework Zend配置继承

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

我的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 = "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中的额外参数。谢谢