php教程 PHP开发 Laravel이 env 함수를 사용하여 환경 변수를 null로 읽는 문제 살펴보기

Laravel이 env 함수를 사용하여 환경 변수를 null로 읽는 문제 살펴보기

Mar 24, 2017 pm 03:11 PM

발견된 문제

Laravel 프로젝트에서 구성 파일을 캐시하기 위해 php artisan config:cache 명령을 실행하면 Tinker(Tinker는 Laravel과 함께 제공되는 대화형 명령줄 인터페이스입니다)에서 값이 env 함수를 사용하여 읽은 환경 변수는 null입니다. php artisan config:clear를 실행하여 구성 캐시를 지운 후에만 읽을 수 있습니다.

알아봅시다

.env 파일을 열어서 다음 파일이 귀중한지 확인하세요.

APP_ENV=local
APP_KEY=base64:JHE5bOkRg283uT0n1Zq/GgvGEer8ooYiB42/wIcCyvo=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://www.tanteng.me
  
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=tanteng.me
DB_USERNAME=homestead
DB_PASSWORD=secret
로그인 후 복사


사진과 같습니다:

Laravel이 env 함수를 사용하여 환경 변수를 null로 읽는 문제 살펴보기

이유는 무엇인가요?

Laravel에서 php aritsan config:cache 명령을 실행하면 Laravel은 app/config 디렉터리의 모든 구성 파일을 bootstrap/cache/config.php의 캐시 구성 파일로 "컴파일"하고 통합합니다. 각 구성 파일은 여기에서 읽을 수 있는 env 함수를 통해 환경 변수를 읽을 수 있습니다. 하지만 이 캐시 구성 파일이 있으면 다른 곳에서 env 함수를 사용하여 환경 변수를 읽을 수 없으므로 null입니다.

이 코드, Illuminate/Foundation/Bootstrap/DetectEnvironment를 살펴보겠습니다.

public function bootstrap(Application $app)
{
 if (! $app->configurationIsCached()) {
 $this->checkForSpecificEnvironmentFile($app);
  
 try {
  (new Dotenv($app->environmentPath(), $app->environmentFile()))->load();
 } catch (InvalidPathException $e) {
  //
 }
 }
}
로그인 후 복사

이 메서드는 프레임워크가 시작된 후에 실행됩니다. 이 코드는 캐시 구성 파일이 있는 경우 환경 변수가 설정되지 않고 구성이 캐시 구성 파일을 읽는다는 것을 보여줍니다. 더 이상 읽을 수 없습니다.

따라서 app/config 디렉토리의 다른 위치에서 구성 파일을 읽을 때 환경 변수를 읽기 위해 env 함수를 사용하지 마십시오. 이런 식으로 php artisan config:cache를 실행하면 env 함수가 작동하지 않습니다. . 사용할 모든 환경 변수는 app/config 디렉터리의 구성 파일에 있는 env를 통해 읽습니다. 다른 곳에서 환경 변수를 사용하는 경우 env 함수를 사용하는 대신 구성 파일을 균일하게 읽습니다.

요약

이 글의 내용이 모두의 공부나 업무에 조금이나마 도움이 되었으면 좋겠습니다. 소통하라는 메시지.

env 함수를 사용하여 null인 환경 변수를 읽는 Laravel에 대한 자세한 내용은 PHP 중국어 웹사이트의 관련 기사를 참고하세요!

관련 기사:

Laravel 프레임워크에서 {{url}}과 {{asset}}의 차이점은 무엇인가요?

laravel

Laravel 경로 리디렉션에 대한 참고 사항

에서 명명된 경로 사용
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)