前々回、前回とサービスコンテナについてやって来た続きです。今回はサービスコンテナを使った、クラスのインスタンス生成と依存性の注入を試してみます。
- クラス名でのインスタンス生成と依存性注入
- インターフェースでの依存性注入
- タイプヒントによる依存性注入
これらの機能は、これこそがLaravelの正体と言っても過言では無いくらい、あちらこちらで使われています。とても重要な機能です。
Laravel のドキュメントを見ていると「依存性の注入」という言葉が良く出てきます。依存性の注入は Dependency Injectionと言われ、「DI」と表記されます。また、別の表現では Inversion of Control(制御の反転)とも言われ、「IoC」と表記されます。Laravel のドキュメントでは「 loC」の方が使われています。
Laravel では、依存性の注入という概念を核としてフレームワークが作成されています。この概念を理解することが、Laravel を理解することへの近道になるかと思います。
この依存性の注入とは何でしょうか?
今回は簡単なPHPのサンプルで、この概念を理解したいと思います。
※ Laravelを使ったソースコードでは無いのでご注意ください。