模块可以有自己的配置文件吗?

时间:2012-09-11 07:42:18

标签: yii

我只想知道是否可以添加扩展模块中main.conf的配置文件

3 个答案:

答案 0 :(得分:2)

确实如此。在CWebModule中通过$ this-> setComponents如下:

<?php

    class AccountModule extends CWebModule
    {
        public function init()
        {
            // this method is called when the module is being created
            // you may place code here to customize the module or the application

            $this->setComponents(array(
                'errorHandler' => array(
                        'errorAction' => 'module/default/error'),
                'defaultController' => 'default',
                'user' => array(
                        'class' => 'ModuleWebUser',
                        'allowAutoLogin'=>true,
                        'loginUrl' => Yii::app()->createUrl('module/default/login'),
                )
            ));

            // import the module-level models and components or any other components..
            $this->setImport(array(
                'module.models.*',
                'module.components.*',
            ));
        }
} ?>

答案 1 :(得分:1)

这样做的方法是在主配置数组的params项中为模块/ etc创建一个数组项。

查看此论坛帖子:http://www.yiiframework.com/forum/index.php/topic/24617-custom-configuration/

如果您希望配置位于单独的文件中,可以将其与配置文件中的主配置数组合并! 这样的事情应该有效:

include("custom_config.php"); // define $array_from_custom_conf inside this file
return array_merge(
   array(/*main_config_array from main.php*/),
   $array_from_custom_conf
);

如果您将自定义配置数组作为第二个参数,它也将覆盖主配置中的属性。

答案 2 :(得分:1)

我从来没有这样做过,但是:

  • a wiki article中提供了当前的解决方案。
  • 关于这个“功能请求”,在Yii的论坛上已经要求这一点并不奇怪。请参阅herehere