浅析 Yii2 的 init 初始化命令

今天想把yii2的初始化功能给修改一下时,顺便研究了初始化的几个相关文件,总结了几个知识点。

1. 先看下init.bat文件,抱歉,真看不懂

2. 再看下environments/index.php文件,抱歉,还是看不懂

  假的,学的就是php,怎么可能连php文件都看不懂呢

return [
    'Development' => [
        'path' => 'dev',
        'setWritable' => [
            'backend/runtime',
            'backend/web/assets',
            'frontend/runtime',
            'frontend/web/assets',
        ],
        'setExecutable' => [
            'yii',
            'yii_test',
        ],
        'setCookieValidationKey' => [
            'backend/config/main-local.php',
            'frontend/config/main-local.php',
        ],
    ],
    'Production' => [],  // 不列出来了,自己查看文件
];

DevelopmentProduction比较好理解,Development代表开发环境,而Production代表生产环境。

接着,根据注释可以知道,path是存储对应环境的本地文件(夹)的目录路径,这些文件(夹)将被复制到根目录下;

setWritable是指定应用所需的应该设置为可写的目录列表,列表中的目录将被设置为0777权限;

setExecutablesetWritable差不多,将列表中的文件设置为可执行(0755)权限;

setCookieValidationKey随机生成一个cookie秘钥,并将秘钥插入的列表中的文件中(注意:列表中的文件必须包含'cookieValidationKey' => '',否则将无法插入。因为它用的是正则匹配替换);

除了上面4个参数,还有2个参数上面没有使用到:

skipFiles列表中的文件只被复制一遍,如果已经存在,则跳过;

createSymlink要创建的快捷方式列表,键是快捷方式,值是快捷方式的目标目录。

3.还有一个重要的文件就是init文件,初始化的所有重要函数都在这个文件中实现。