DIについての概要
PHPでのDI(Dependency Injection)に関して。
オブジェクト指向の本を読むにつれて少しずつDIの有効性がわかってきました。
現状でのDIのメリットをまとめると下記のような点かと。
- 外部からのクラスを注入することにより、クラス自体を単一責任にすることができる
- 上記のメリットにより、注入される側のクラスの依存度が下がり、単体でのクラスのテストが簡単
- インターフェイスを定義することで注入する側のクラスのインスタンスが変更されても問題ない
- DIコンテナの場合、DIの注入をする部分がFactory(Simple Factoryパターン)などと言われることが多い。変更する場合はここのみを変えておけばOK。(スイッチを切り替えるイメージ)
自分の中では単一の機能の話というよりは、プログラムの書き方自体にかかわってくる思想そのものという感じです。
自分が作った簡単なサンプル(リンクの写経)
https://github.com/umanari145/phptips