2016-08-08 3 views
1

Laravel은 .env 파일이 환경을 설명해야한다고 가정하고 사용자의 repo에 커밋하지 않아야한다고 가정합니다.Laravel - 사용자 지정 .env 파일

내가 어떤 파일 것은 현재 도메인 이름을 기준으로 예를 들어, 사용되어야 내 REPO에 devproduction (예를 들어 .env-production.env-dev) 모두 .env 파일을 유지하고 일부 사용자 지정 논리를 추가합니다.

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

같은 뭔가 어떻게 그것을 달성 할 수 있는가? 감사합니다.

답변

3

Nadeem0035 나에게 바로 답변을 주셔서 감사하지만, 이것이 return $app;

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

단일 .env 파일을 laravel에 저장 했으므로 앱 레벨을 정의 할 수 있습니다. APP_ENV=local 또는 APP_ENV=production 요구 사항에 따라 구성을 설정할 수 있으며 여기에 .env 파일을 새로 만들지 않아도됩니다. 더 Laravel Environment Variables에 대해 : 하고 여기에 당신을 위해 더 자세한 설명 도움말입니다 : phpdotenv

+0

전에

bootstrap\app.php을 할 것을 꽤 좋은 아이디어를 준 그렇지 않다. 나는 여전히 편리하기 때문에 여전히 .env 파일을 사용하고 싶다. 그러나 나는이 모든 관료주의와 과대비를 원하지 않는다. 작은 애완 동물 프로젝트 일 때 편집하고 나는 유일한 관리자입니다. 기본적으로 제안 된 스키마는 좋지만 소규모 프로젝트에는 너무 많은 노력이 필요합니다. – SmxCde

5

사용 Dotenv :: 부하() 사용자 정의 vlucas와

laravel 5.1 파일 .env를위한/phpdotenv ~ 1.0

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

OR vlucas/phpdotenv ~ 2.0

$dotenv = new Dotenv\Dotenv(__DIR__, 'myconfig'); // Laravel 5.2 
$dotenv->load(); 

laravel 5.2 부트 스트랩에서

PHP dotenv

은/app.php

+0

답장을 보내 주셔서 감사합니다. 나에게 적합하지 않습니다. 부하가 정적 인 방법이 아니므로 Dotenv에 직접 액세스하는 것이 가장 좋은 방법은 아닐 수 있지만, 제게 무엇을 할지를 잘 알았고 대답을 생각 해냈습니다 - 대신'$ app-> loadEnvironmentFrom ($ envFile);을 사용하십시오. 감사! – SmxCde

+0

@SmxCde 내 첫 번째 코드는 laravel 5.1. *에서 테스트되었습니다. vlucas/phpdotenv ~ 1.0 [link] (https://github.com/vlucas/phpdotenv/tree/1.1) – Nadeem0035

관련 문제