루멘 5.4, MyDql & 도커. 내 프로젝트에루멘은 요청하는 동안 시스템에서 env를 읽지 않습니다.
$ printenv
DB_HOST=127.0.0.1
DB_DATABASE=database
etc
.env
글로벌 env
에서 변수를 다음 한도 존재하지만 서로 다른 값을 갖는다.
팅커 인 env('DB_HOST')
을 입력하면 전역 환경의 값이 인쇄되지만 응용 프로그램이 실행될 때 지정된 .env
파일에서 가져옵니다. 나는 문제가 Laravel\Lumen\Application
에 다음 함수 내에 존재 생각 :
/**
* Load a configuration file into the application.
*
* @param string $name
* @return void
*/
public function configure($name)
{
if (isset($this->loadedConfigurations[$name])) {
return;
}
$this->loadedConfigurations[$name] = true;
$path = $this->getConfigurationPath($name);
if ($path) {
$this->make('config')->set($name, require $path);
}
}
어떻게 그 값을 대체하거나 그 조건을 방지 할 수 있도록 : isset($this->loadedConfigurations[$name])
를?
당신은'env()'를 참조하지 않고 대신'config()'파일을 참조하고 그곳에있는 전역 vs local env의 논리를 처리합니다. '.env()'파일을 직접 참조하지 말아야한다. – Ohgodwhy
@Ohgodwhy 물론 네 말이 맞아.하지만이 상황에서는 그렇지 않아. Docker의 시스템'env 's를 사용하고 Docker의 환경에서 주어진 값으로 내 로컬'.env'에서 그 값을 덮어 쓰고 싶습니다. 경우는 위에서 언급 한 자동 로딩 구성을 피하는 방법입니다. – wujt