Laravel의 지연 로드 구성

라라벨 애플리케이션의 설정이 가장 먼저 로드되는 것 중 하나라는 것은 상식입니다. 그렇지 않은 경우 응용 프로그램 수명 주기here를 확인하십시오. Laravel 자동 설정의 일부로, config 폴더에 있는 모든 것은 애플리케이션 설정으로 간주되며 애플리케이션이 부팅되는 즉시 로드됩니다.

이것이 왜 중요한가요? 우리는 잠시 후에 그것을 얻을 것입니다. 먼저 우리는 이것을 어떻게 달성할 수 있습니까?

첫 번째 단계는 맞춤형 서비스 공급자를 생성하는 것입니다. 이것이 무엇인지 확실하지 않으면 here is the doc을 참조하십시오.

나는 CustomConfigServiceProvider라는 것을 만들었습니다. 이것을 Providers 디렉토리에 둘 수 있습니다.

다음으로 사용자 지정 구성 파일을 위한 새 사용자 지정 폴더를 만듭니다. config의 모든 항목은 자동으로 로드된다는 점을 기억하십시오. custom-config라는 폴더를 만들었습니다.

공급자의 부팅 섹션에서 다음 코드를 추가합니다.

parent::boot();
$this->mergeConfigFrom(__DIR__.'/../../../custom-config/settings.php', 'settings');


여기서 무슨 일이 일어나고 있는 걸까요? 분해하겠습니다. 파일은 다음과 같이 표시됩니다.

<?php

namespace App\Providers\Custom;

use Illuminate\Support\ServiceProvider;

class CustomConfigServiceProvider extends ServiceProvider
{
    public function boot()
    {
        parent::boot();
        $this->mergeConfigFrom(__DIR__.'/../../../custom-config/settings.php', 'settings');
    }

    public function register()
    {
        parent::register();
    }
}


먼저 모든 공급자가 프레임워크에서 기본ServiceProvider 클래스를 확장하므로 코드 블록이 먼저 실행되도록 parent::boot()를 호출합니다.
그런 다음 새 구성을 이전에 이미 로드한 구성 세트에 병합합니다. 이 경우 settings.php라는 사용자 지정 구성 파일이 있습니다.

이제 지연 로드 구성을 위한 모든 설정이 완료되었습니다.

완료해야 할 마지막 단계가 하나 있습니다. 서비스 제공업체를 등록해야 합니다. config/app.php 파일에서 공급자 배열에 새 공급자를 추가합니다.

비올라, 이제 지연 로드 구성이 생겼습니다.

사용 사례의 경우, 예를 들어 이전에 로드된 타사 애플리케이션에 의존하는 구성이 있는 경우가 있습니다. 이에 대해서는 나중에 자세히 설명합니다.

의 몇 가지 멋진 기능을 확인하십시오. 지연 로드 구성을 사용하고 있습니까? 댓글로 알려주세요.

좋은 웹페이지 즐겨찾기