サービスコンテナとサービスプロバイダーの要点

Tag:

サービスコンテナとサービスプロバイダーの要点についてまとめてます。

サービスコンテナ

クラス(サービス)のインスタンス化を管理する。

バインド

・サービスコンテナへインスタンス生成方法を結びつけ。
・bind、singleton、instanceなどのメソッドでバインドできる。

解決

・サービスコンテナに要求して、インスタンスを取得する。
・makeメソッドなどで解決できる。

依存注入

・タイプヒントで指定すると、サービスコンテナが自動的に解決してくれる。
・「コンストラクションインジェクション」と「メソッドインジェクション」が可能。

※コンストラクションインジェクション
コンストラクタの引数でタイプヒント

※メソッドインジェクション
メソッドの引数でタイプヒント

・タイプヒントには、インターフェイスと具象クラスを指定できる。

インターフェイスを指定した場合、コンテナに具象クラスを結合する必要がある。

参考

詳しくは、下記サイトで確認できます。
http://readouble.com/laravel/5/1/ja/container.html

サービスプロバイダー

config/app.phpproviders配列にサービスプロバイダーを設定する。

・サービスプロバイダーは、初期起動時にロードされる。

・まず全プロバイダーのregisterメソッドが呼び出される。

・次に全プロバイダーのbootメソッドが呼び出される。

・registerメソッドでサービスコンテナにバインドする。

$deferプロパティをtrueにすると、遅延登録ができる。

参考

詳しくは、下記サイトで確認できます。
http://readouble.com/laravel/5/1/ja/providers.html

スポンサーリンク