サービスコンテナ
- リクエストのライフサイクル
- 設定
- ディレクトリ構成
- フロントエンド
- サービスコンテナ
- ファサード
イントロダクション
Laravelサービスコンテナは、クラスの依存関係を管理し、依存注入を実行するための強力なツールです。依存の注入は、本質的にこれを意味する派手なフレーズです。クラスの依存は、コンストラクターまたは場合によっては「セッター」メソッドを介してクラスに「注入」されます。ん?
依存注入って言うとDI(Dependency Injection)のことですかね?
以前、BEAR.SundayというPHPフレームワークでDIのことは初めて知った気がします。
AというクラスがBというクラスを使うときにAの内部でBをインスタンス化せずに外部からBのインスタンスを受け取って(コンストラクタあるいはセッター)内部の変数に格納しておくというものだったはず。
そしてどのクラスをインスタンス化を知っていて実際にインスタンス化して注入する(といってもコンストラクタを呼ぶとかセッターを呼ぶだけ) 役割がDIコンテナだったかな?
だいたい合ってそうです。
サンプルのソースコードでは、
UserRepository $users
をコンストラクタで受け取って内部変数に格納しています。そしてshow()メソッドで受け取ったパラメータ$idを使って検索した結果をビューに渡してリターンしています。
$usersオブジェクトの中で$idに一致するものを検索して返すんでしょうね。
0 件のコメント:
コメントを投稿