サービスプロバイダの登録方法


service providers

 悩み事

アプリケーションにサービスプロバイダを登録したい

 解決方法

app/config/app.php内のproviders[]配列に、
作成したサービスプロバイダを追加します。

これは通常のサービスプロバイダ登録方法で、
app/config/app.phpproviders[]配列の最後に追加します
環境毎に異なるサービスプロバイダを記述する場合は、
それぞれのapp/config/環境/app.phpにで同じ様に追加してください

'providers' => [
    ...
    'MyApp\Providers\MyServiceProvider',
],

サービスプロバイダのregister()記述する事で、Laravelが判断する様になり、
遅延束縛として実行時に任意のクラスや設定したものが実行されます

その後、サービスプロバイダのboot()が実行されます

 アドバイス

App::register()を使って、直接記述する事もできます

これはローレベルで実行されます

実装したサービスプロバイダ、またはサービスプロバイダクラスのインスタンスで利用する事ができます

\App::register('MyApp\Providers\MyServiceProvider');

// or
$provider = new \MyApp\Providers\MyServiceProvider;
\App::register($provider);

この場合は、指定したサービスプロバイダのregister()が実行され、
アプリケーションが起動してから、boot()が実行されます
処理の流れはapp/config/app.phpに書いた場合と同様です

サービスプロバイダを決まった場所に設置することで、管理やメンテナンス性も向上しますので、
通常はapp/config/app.phpでサービスプロバイダを追加するのをお勧めします


Author:Chuck Heintzelman

Editor and Translator:Yuuki Takezawa