laravelメモメモ Laravel

Service Providers (サービスプロバイダ)
Laravelはサービス毎に初期処理を定義し、実行する仕組みを持っています。
その仕組みや、実際に初期処理の実装を行うクラスのことをサービスプロバイダーと言います。
全てのサービスプロバイダーは、config/app.php設定ファイルで登録されています。
新たなサービスが必要になれば、このファイルにクラスを追加していきます。



IoCコンテナ
IoCコンテナとはInversion of Control(制御の反転)コンテナのことです。
IoCコンテナは、必要な時に必要な場所で、インスタンスを渡してくれる仕組みです。



Facade (ファサード)
ファサードはアプリケーションのIoCコンテナに用意したクラスに「静的」なインターフェイスを提供してくれます。
Laravelの「Facade(ファサード)」は、IoCコンテナー下で動作しているクラスに対し、 static proxies として動作しています。
これにより伝統的な静的メソッドよりも、簡潔で、テストの行いやすさと柔軟性を保ちながらも、記述的な書き方が行えます。



Middleware (ミドルウェア)
HTTPミドルウェアとも呼ばれることがあります。
リクエスト時とかレスポンス前等にフィルタリングを入れることが出来るのがミドルウェアです。
HTTPミドルウェアはアプリケーションにやってきたHTTPリクエストをフィルタリングする、便利なメカニズムを提供します。

Factoryパターンの考え方は実に簡単です。「クラスのインスタンス化業務を肩代わりしてくれるオブジェクト」を導入していれば「Factoryパターン」と言っていいのです。

要はクラスのインスタンス化を行う時に、自分でnew TheClass()するのではなく、factory.create( the_class )のように、「誰か」に代わりにやってもらうのです。その「誰か」が「Factory」です。いわば、オブジェクトを作るオブジェクトですね。「オブジェクトの製造所」 → 「Factory」というわけです。

インスタンス化で複雑なオプションが必要なときに活かせるパターンです。逆に言えば、インスタンス化がさほど難しくない場合には適用すべきではありません。必要以上にアプリケーションが複雑化するからです。