yii2项目实战-配置
更新于 2016年10月22日 by 白狼 被浏览了 5148 次

yii2配置项的理解

说起项目的配置,一种简单的理解概念就是为项目做一个基本的配置,类似数据库配置、路由配置等等。但是yii2的配置往往更复杂一些,在yii2中,配置项一定是针对对象进行的配置,其作用就是对对象的初始化或者说是配置对象的默认属性。可能刚开始接触yii的会有一点不好理解,我们举个栗子进行说明:

假设我们需要为当前项目封装一个全局性的公共的方法,在yii2中怎么解决?

我们假设全局性的公共类文件位于common/components/Helper.php,其内容如下:

namespace common\components;

class Helper
{
    public function checkedMobile ($mobile)
    {
        return $mobile;
    }
}

如果按照一般的方法调用,你只需要use一些这个类并调用我们的checkedMobile方法即可,但是,为了说明yii配置文件的使用规则,我们打开common\config\main.php文件对components选项进行如下配置:

'components' => [
    // other code...
    'helper' => [
        'class' => 'common\components\Helper',
        'property' => '123',
    ],
],

接着你只需要简单的使用

var_dump(Yii::$app->helper->checkedMobile('186xxx'));
var_dump(Yii::$app->helper->property);

进行调用即可。

从上面的栗子中,也不难看出,其配置项的格式大多数情况下只需要指定一个class即可。当然,我们还可以为配置项(比如说我们配置的全局类)配置属性、行为和事件,鉴于理解,我们这里只对属性进行了配置,行为和事件后面我们会再说。

实战开发所需的基本配置

下面我们在做一些我们后面所需要的基本配置,但不保证是必须的。

return [
    'components' => [
        // 配置缓存
        'cache' => [
            'class' => 'yii\caching\FileCache',
        ],
        // 配置数据库
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=advanced',
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
            'enableSchemaCache' => true,
            'schemaCacheDuration' => 24*3600,
            'schemaCache' => 'cache',
        ],
    ],
    // 配置语言
    'language'=>'zh-CN',
    // 配置时区
    'timeZone'=>'Asia/Chongqing',
];