把.env文件清空,里面写入local,testing,production等,则可以切换对应的环境。
继续优化,把这段代码移到index.php文件中,如下:
$app = require_once __DIR__.'/../bootstrap/app.php';
# .env配置多环境
$app->detectEnvironment(function () use($app) {
$envName = trim(file_get_contents($app->environmentPath().'/.env'));//获取默认env文件配置要加载的env文件名
$app->loadEnvironmentFrom('.env.'.$envName);
});
继续优化成一行代码,把index.php忽略git版本控制,实现多环境互不干扰!
$app = require_once __DIR__.'/../bootstrap/app.php';
$app->loadEnvironmentFrom('.env.online');# .env配置多环境,只此一行
在Providers/AppServiceProvider中的register方法判断环境加载所需服务!
if ($this->app->environment() !== 'production') {
$this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
}