PHP高级工程师|全栈工程师|WX: Aben_Ring

Laravel 不同环境加载不同的.env文件

假设有4个.env文件。分别为

.env.local
.env.dev
.env.test
.env.prd
方式一

第一步:bootstrap\app.php 加入代码

$envs = ['local','dev','test','prd'];
$env = get_cfg_var('env');
if(empty($env) || !in_array($env, $envs)){
    exit('no env files');
}
$env = '.env.'.$env;
$app->loadEnvironmentFrom($env);

第二步:php.ini文件中添加一行

env = local
方式二

假设不同环境域名分别为:
local-domain.com
dev-domain.com
test-domain.com
domain.com

bootstrap\app.php 加入代码

if (!$app->runningInConsole()) {//HTTP形式
    if (empty($_SERVER['HTTP_HOST'])) {
        die('[error] no host');
    }
    $app_env = substr($_SERVER['HTTP_HOST'],0,strpos($_SERVER['HTTP_HOST'],'-'));
} else {//其它形式
    $app_env = $app->detectEnvironment(function () {
        return 'prd';
    });
}
if (empty($app_env)) {
    die('[error] no environment');
}
//写入环境配置
//Dotenv::setEnvironmentVariable('APP_ENV', $app_env);
$app->loadEnvironmentFrom('.env.' . $app_env);
//    ->useEnvironmentPath(base_path('env'));
posted @ 2019-09-20 14:15  懒牛拉车  阅读(2256)  评论(0编辑  收藏  举报