Laravel - 自定义.env文件

Smx*_*Cde 6 php laravel

Laravel假定该.env文件应描述环境,并且不应该将其提交给您的repo.

如果我想在我的仓库中保留两个.env文件devproduction(说.env-production.env-dev)并添加一些应该使用哪个文件的自定义逻辑,例如基于当前域名,该怎么办?

就像是

if ($_SERVER['HTTP_HOST'] == 'prod.domain.com') {
    load('.env-production');
} else {
    load('.env-dev');
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现它?谢谢!

Nad*_*035 6

将Dotenv :: load()用于自定义.env文件

laravel 5.1 with vlucas/phpdotenv~1.0

if ($_SERVER['HTTP_HOST'] == 'prod.domain.com') {
    Dotenv::load(__DIR__ . '/../','.production.env');
} else {
    Dotenv::load(__DIR__ . '/../','.dev.env');
}
Run Code Online (Sandbox Code Playgroud)

要么

laravel 5.2 with vlucas/phpdotenv~2.0

$dotenv = new Dotenv\Dotenv(__DIR__, 'myconfig'); // Laravel 5.2
$dotenv->load();
Run Code Online (Sandbox Code Playgroud)

PHP dotenv

在bootstrap/app.php中


Smx*_*Cde 5

Nadeem0035给了我很好的主意该怎么做

bootstrap\app.php 就在之前 return $app;

$envFile = $_SERVER['HTTP_HOST'] == 'prod.domain.com' ? '.env-production' : '.env-dev';
$app->loadEnvironmentFrom($envFile);
Run Code Online (Sandbox Code Playgroud)