[TOC]
### 1.配置的通用格式
.env文件中进行设置,在后续的其他配置里,使用env('.env文件的配置key')来给后面的配置指定
所以最核心的配置应该是走.env文件配置,其他地方的配置如/config/下各个配置文件的配置,都用env('.env文件的配置key')来指定。
### 2.如何设定?
vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables.php
```
/**
* Detect if a custom environment file matching the APP_ENV exists.
*
* @param \Illuminate\Contracts\Foundation\Application $app
* @return void
*/
protected function checkForSpecificEnvironmentFile($app)
{
if ($app->runningInConsole() && ($input = new ArgvInput)->hasParameterOption('--env')) {
if ($this->setEnvironmentFilePath(
$app, $app->environmentFile().'.'.$input->getParameterOption('--env')
)) {
return;
}
}
if (! env('APP_ENV')) {
return;
}
$this->setEnvironmentFilePath(
$app, $app->environmentFile().'.'.env('APP_ENV')
);
}
```
如果是命令行,如php artisan 或者 php 则用 --env 参数来分辨
如果是普通模式,可以在入口文件通过putenv函数将APP_ENV环境变量注入。这样就会加载.env.APP_ENV
```
# 变量$env用代码逻辑区分环境,比如不同环境的host不一样
# 也可以直接指定 线上不用加这段代码,直接使用默认的加载.env
$env = '';
define('APP_ENV', $env);
putenv('APP_ENV='.APP_ENV);
```