$ php artisan make:provider NazoServiceProvider
という感じで生成。app/Providers/
以下に生成される。
config/app.php
の
/*
* Application Service Providers...
*/
以下にnamespaceをどんどん追加する。
使うか使わないかわからないサービスプロバイダは遅延読み込みさせよう。
|php| protected $defer = true; ||<
まずregister()
が呼ばれ、その後にboot()
が呼ばれる。boot()
は実装しなくてもいい。
register()
では、サービスコンテナの登録を行う。
サービスコンテナとか変な名前だけど、要はautoloaderとの対応表だと思えばいい。
|php| $this->app->bind(‘Nantoka’, function() { return ‘hoge’; }); ||< と指定したら、コントローラーで |php| \App::make(‘Nantoka’); // ‘hoge’ ||< とできる。 なんやそれオートロードちゃうやろと思うけど、これがクラスだと |php| $this->app->bind(‘Nantoka’, ‘\App\Service\NantokaService'); ||< で、 |php|
||< とできる。