在 Yii 中合并多个配置文件

问题描述 投票:0回答:1

我的 Yii 应用程序由 4 个模块组成。每个模块都有自己的配置文件 main.php,仅列出 url 管理器的配置。我在应用程序目录的 /config/main.php 中有所有其他配置。有没有办法将每个模块配置到主配置文件中?

php configuration yii2
1个回答
0
投票

我不确定您是否使用

Yii 1 or 2
。您的问题显示为
Yii
,但被标记为
yii2

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

您有 4 个模块。它们必须位于

/protected/modules/MODULE_NAME1
/protected/modules/MODULE_NAME2
,还有另外两个。

每个模块都有自己的

main.php
,由
UrlManager
数组组成。 假设每个
config
文件夹中有一个
MODULE_NAME
文件夹,其中有
main.php

所以位置就变成了 -
/protected/modules/MODULE_NAME1/config/main.php

现在,在

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

这就是获取

main.php
(
located 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
相同的结构。

© www.soinside.com 2019 - 2024. All rights reserved.