在Yii中合并多个配置文件

时间:2014-09-11 05:26:40

标签: configuration yii2

我的Yii应用程序包含4个模块。每个模块都有自己的配置文件main.php,列出了url manager的配置。我在应用程序目录的/config/main.php中有所有其他配置。是否有解决方案将每个模块配置到主配置文件中?

1 个答案:

答案 0 :(得分:0)

我不确定您是否使用Yii 1 or 2。您的问题是Yii,但标记为yii2

如果是Yii 1,那么试试这个 -

你有4个模块。它们必须位于
/protected/modules/MODULE_NAME1/protected/modules/MODULE_NAME2和其他两个。

每个模块都有自己的main.phpUrlManager的数组组成。 假设您在每个config文件夹中都有一个MODULE_NAME文件夹,其中包含main.php
所以位置变为 - /protected/modules/MODULE_NAME1/config/main.php

现在,在index.php中,您必须拥有一行代码$config=dirname(__FILE__).'/protected/config/main.php';

这是获取main.phplocated at /protected/config/main.php)数据的方式。

因此,如果您想添加更多配置数组,那么只需获取每个配置数组并与主要数据库合并。

例如:

$config = array_merge(
    require(dirname(__FILE__).'/protected/config/main.php'),
    require(dirname(__FILE__).'/protected/modules/MODULE_NAME1/config/main.php'),
    require(dirname(__FILE__).'/protected/modules/MODULE_NAME2/config/main.php'),
    require(dirname(__FILE__).'/protected/modules/MODULE_NAME3/config/main.php'),
    require(dirname(__FILE__).'/protected/modules/MODULE_NAME4/config/main.php'),
);

确保从模块的arrays返回的main.php具有与urlManager相同的结构。