티스토리 뷰

Laravel의 서비스 프로바이더 등록에 대해서 정리한다.

 

프로바이더 생성 명령어

php artisan make:provider SampleServiceProvider

app/Provider 폴더에 생성됨

 

SampleServiceProvider 클래스의 register() 함수에 app()->bind() 함수를 이용하여 등록

※ app()-bind에 대한 설명은 서비스 컨테이너 등록을 참조

 

class SampleServiceProvider extends ServiceProvider
{
    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
        app()->bind('serviceProviderTest', function() {
            return 'service provider test';
        });
    }
    
    ...
}

 

config/app.php 파일의 프로바이더에 등록

'providers' => [
    /*
     * Laravel Framework Service Providers...
     */
    Illuminate\Auth\AuthServiceProvider::class,

    /*
     * Application Service Providers...
     */
    App\Providers\AppServiceProvider::class,

	// 적당한곳에 추가
    App\Providers\SampleServiceProvider::class,
],

 

등록된 프로바이더를 사용

public function showServiceProviderTest() {
    $encrypt = app()->make('encrypter');
    $password = $encrypt->encrypt('password');

    $sample = app()->make('serviceProviderTest');

    dd($sample, $password, $encrypt->decrypt($password));
}

app()->make() 로 불러와서 사용할 수 있다.