0

似乎Module.phpgetConfig方法中定义的所有配置设置都在应用程序中全局合并。这对我来说很奇怪,因为我需要为每个模块设置不同的配置:数据库设置、一些工厂和 view_manager 设置,这些设置当前被最后一个加载的模块覆盖。如何使用某些模块专有的配置是$this->getServiceLocator()->get('Config')该模块的范围。我现在唯一的想法是将我的模块配置与$this->getServiceLocator()->get('Config')调度事件合并,如果这是唯一的情况,那么使用什么优先级更好,这样我就可以利用所有设置:view_manager、service_manager 等?

对我来说,理想的解决方案是,如果某个命名空间范围内的配置设置仅在该命名空间下使用。

4

2 回答 2

2

您可以随意嵌套配置值。

想象一下,您有一个名为“mymodule”的模块,它需要连接到一个特殊的、特定于模块的数据库(与整个应用程序的主数据库不同)。你会做这样的事情:

mymodule.global.php.dist:

return array(
    'mymodule' => array(
        'db' => array('host'=>'localhost', ... )
    )
)

然后确保 myModule 正在查看$config['mymodule']['db'],而不是$config['db']

于 2013-02-08T01:28:09.300 回答
0

可以通过这种方式获取模块的配置设置:

$moduleManager = $this->getServiceLocator()->get('ModuleManager');
$applicationModule = $moduleManager->getModule('Application');
$applicationConfig = $applicationModule->getConfig();
于 2013-06-06T02:10:52.713 回答