우리는 항상 서두르고 가능한 한 빨리 개발하기를 원하며 결국 오래된 습관을 채택하고 오래된 소프트웨어를 구축하게 되는 경우가 많습니다. 우리가 많이 개선할 수 있는 항목은 환경, 이에 대해 좀 더 알아보겠습니다.
우선 여기서는 laravel의 구성 개념에 중점을 두고 리소스나 기타 유사한 패턴에 대해서는 걱정하지 않을 것입니다.
1 - 지식을 추구하자!
얼마 전에 내 미친 코드 내에서 이 ENV 패스를 수행할 수 없다는 말을 들었습니다. 우와
따라서 목적은 이유를 이해하는 것입니다. 이렇게 하면 엔지니어로서 더 나은 결정을 내릴 수 있기 때문입니다.
1.1 - 올바른 방법이나 관점은 무엇입니까?
자, 꼬마 미래의 주인님, 놀 수 있도록 환경 변수에 값을 넣어봅시다.
첫 번째 요점으로 가보겠습니다. 이 구성을 환경 변수로 배치한 훌륭한 결정입니다. 이렇게 하면 다양한 환경(생산, 승인, 있는 경우?)을 관리하기가 더 쉬워지고 훨씬 더 안전해집니다. 저장소(git/bitbucket)에서 장난스러운 git push를 수행해도 노출되지 않습니다. 물 비밀이 인터넷에 유출되는 것을 상상할 수 있습니까?
그리고 Laravel에서 이 값을 검색하려면 env() 메서드를 사용하거나 Illuminate의 Support와 같은 다른 패키지를 사용할 수도 있습니다(하수인이 생각나는데, 이유는 모르겠습니다.)
env: Laravel 도우미( Env::get 사용)
Env::get: Support Illuminate 패키지의 Env 클래스
와, 준비됐는데 왜 계속 패션을 발명하는 걸까요? 진실은 이것이 좋은 생각이 아니라는 것입니다. 이유를 곧 설명하겠습니다. 나와 함께 있어주세요.
다른 솔루션의 경우 생성된 환경의 값을 검색하는 구성 파일을 언급할 수 있으므로 구성 파일이 중앙 집중화됩니다. 코드를 읽는 데 훨씬 좋습니다.
이 특정 상황에서는 이미 services.php라는 기존 구성 파일을 사용할 수 있지만 특정 컨텍스트에 대한 파일을 생성하는 데 방해가 되는 것은 없습니다.
경로에서 config/services.php
따라서 코드에서 다음과 같이 호출합니다.
2 - 멋지네요. 그런데 변수를 직접 가져오는 것이 아니라 구성을 사용하여 변수를 검색해야 하는 이유는 무엇입니까?
몇 가지 이유를 보여 드리겠습니다.
2.1 - 성능 향상 및 IO 활용도 향상
다음 상황을 생각해 보십시오. 항상 액세스하고 상당한 IO를 수행하여 시스템 리소스를 늘리고 상황에 따라 시스템 속도를 저하시키는 파일이 프로덕션에 있습니까? (그리고 실제로 문제를 찾을 때까지 당신은 당신의 모든 지식에 의문을 제기하는 일을 겪게 될 것입니다.)
프로덕션 환경에 관해 이야기할 때 아름다운 구성 파일을 캐시하는 것이 좋습니다. Laravel을 사용하면 artisan을 사용할 수 있습니다.
php artisan config:cache
이 아름다운 명령은 모든 구성 파일과 해당 값을 가져와 단일 PHP 파일로 컴파일하여 성능을 향상시킵니다. 이는 IO 번호가 1
로 줄어들었기 때문입니다.Curiosity: 이 명령을 사용하면 env()는 이 기능을 비활성화하기 때문에 NULL를 반환하기 시작합니다. 따라서 "Neida"에서 env()가 작동을 멈춘다면 그게 전부입니다.
Env() IO 작업을 수행하면 비용이 많이 들고 느립니다.
환경이 필요할 때마다 작업을 수행하는 것보다 애플리케이션 시작 시 이 작업을 한 번 수행하는 것이 가장 좋습니다.
2.2 - 가능한 최선의 방법으로 조직 및 표준화
모든 설정을 원하는 대로 쉽게 유지할 수 있습니다. 원하는 강아지 이름을 입력하고, 폴더를 만들고 모든 배열을 원하는 대로 구성하면 구조가 더 깔끔해집니다. (적당히 사용해주세요)
예를 들어:
이 키를 보세요:
이제 다음 키를 살펴보세요.
제 의견으로는 첫 번째가 훨씬 더 좋습니다.
게다가 유사한 구성을 코드에 "무작위로" 배치할 필요 없이 올바른 중앙 집중식 위치에 가질 수 있으며, 애플리케이션에 완전히 적합한 배열을 구조화한다는 아이디어가 정말 마음에 듭니다.
그리고 새로운 구성을 만드는 위치와 방법을 알려줄 수 있으므로 새로운 개발자를 위한 지침이 훨씬 간단해졌습니다.
간단하게 유지하고 차이를 만드세요!
지금까지 감사드립니다.
원천:
Laravel 11 문서 구성
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3