Laravel サービスコンテナとサービスプロバイダ
結構難しい。ぼんやりと。
サービスコンテナ
- Laravelはモデル等のクラスをコントローラでnewしなくてよい
- コントローラの引数に書いてやればよい (注入)
それを実現するのがサービスコンテナ。サービスとは”特定の機能を持ったクラス”のことである
- このようにメソッドの引数にクラスを指定するだけでインスタンスが使えるようになる機能を「メソッドインジェクション」と呼ぶ。これはサービスコンテナの最も強力で多用する機能である
- サービスコンテナにクラスをバインド(登録)する。という。
- サービスコンテナからクラスをリゾルブ(解決)する。という。(インスタンスが取得できた状態)
サービスプロバイダ
- 起動時にサービスコンテナへバインドをする仕組み
- サービスプロバイダは
config/app.php
に列挙されている