【Yii2】修改框架入口增加配置適應開發生產環境

爲什麼

首先,每個框架要保證自己的易用性,不會搞得特別複雜。

然後,實際項目中,作爲一個工程,我們要保證團隊成員的項目配置傻瓜化。

因此可見,修改入口文件是有足夠的必要性的。

操作

修改index.php

文件位置web/index.php,在前面增加如下內容

$config =  __DIR__ . '/../.env';

if(!isset($config)){
    return 'no config';
}
$configCount = parse_ini_file($config);

if(!isset($configCount['APP_ENV']) || !isset($configCount['APP_DEBUG'])){
    return 'no config';
}

增加配置模板.env.exp

在項目根目錄增加文件.env.exp

APP_ENV=dev
APP_DEBUG=true

這裏我們定義兩項

APP_ENV - 環境 dev/prod
APP_DEBUG - 是否開啓debug true/false

增加設置配置文件 set_env.php

$type = $argv['1'];

$appEnv = 'dev';
if($type == 1){
    $appEnv = 'dev';
}
if($type == 2){
    $appEnv = 'pre_prod';
}
if($type == 3){
    $appEnv = 'prod';
}

$appDebug = 'true';
if($argv['2'] == 0){
    $appDebug = 'false';
}

$str = "APP_ENV=$appEnv\nAPP_DEBUG=$appDebug";
file_put_contents(".env",$str);

做這個文件的目的是當我們使用項目部署平臺的時候,只要執行腳本中增加php set_env.php 1 1就可以了。

修改文件web.php

修改讀取配置文件config/web.php,在前面增加如下

$params = require __DIR__ . '/'. YII_ENV.'_params.php';
$db = require __DIR__ . '/'. YII_ENV.'_db.php';
$db2 = require __DIR__ . '/'. YII_ENV.'_db2.php';

讀取配置對應的配置文件,這裏我讀了兩個數據庫,如果你有多個可以增加更多。

增加配置文件

我們增加對應環境下的各自的配置文件,如圖
在這裏插入圖片描述

修改git忽略配置文件.gitgnore

項目的.env文件是命令執行生成的,所以這個文件不能放在代碼倉庫中。

.env

總結

這樣一套操作下來,我們可以在項目中配置不同環境的配置,一勞永逸。

發佈了350 篇原創文章 · 獲贊 449 · 訪問量 169萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章