ペチパーノート

WEB開発系Tipsブログです。

Laravel サービスコンテナとサービスプロバイダ

結構難しい。ぼんやりと。

サービスコンテナ

  • Laravelはモデル等のクラスをコントローラでnewしなくてよい
  • コントローラの引数に書いてやればよい (注入)
  • それを実現するのがサービスコンテナ。サービスとは”特定の機能を持ったクラス”のことである

  • サービスコンテナはクラスのインスタンスを作ってくれるマシーンである

  • このようにメソッドの引数にクラスを指定するだけでインスタンスが使えるようになる機能を「メソッドインジェクション」と呼ぶ。これはサービスコンテナの最も強力で多用する機能である
  • サービスコンテナにクラスをバインド(登録)する。という。
  • サービスコンテナからクラスをリゾルブ(解決)する。という。(インスタンスが取得できた状態)

サービスプロバイダ

  • 起動時にサービスコンテナへバインドをする仕組み
  • サービスプロバイダはconfig/app.phpに列挙されている