Yii-dependency-injection
提供:Dev Guides
Yii-依存性注入
DI(依存性注入)コンテナは、オブジェクトのインスタンス化および構成方法を知っているオブジェクトです。 Yiiは* yii \ di \ Containerクラス*を介してDIコンテナを提供します。
次の種類のDIをサポートしています-
- セッターおよびプロパティインジェクション
- PHP呼び出し可能インジェクション
- コンストラクタインジェクション
- コントローラーアクションインジェクション
DIコンテナは、タイプヒントの助けを借りてコンストラクタインジェクションをサポートしています-
プロパティとセッターの注入は、構成を介してサポートされています-
PHPの呼び出し可能インジェクションの場合、コンテナは登録されたPHPコールバックを使用してクラスの新しいインスタンスを構築します-
コントローラーアクションインジェクションは、タイプヒントを使用して依存関係が宣言されるDIの一種です。 MVCコントローラーをスリムで軽量かつスリムに保つのに役立ちます-
- yii \ db \ Container :: set()*メソッドを使用して、依存関係を登録できます-
DIを使用する
ステップ1 *- *components フォルダー内に、次のコードで MyInterface.php というファイルを作成します。
- ステップ2 *-componentsフォルダー内に2つのファイルを作成します。
ステップ3 *-次に、 *actionTestInterface をSiteControllerに追加します。
ステップ4 *- *http://localhost:8080/index.php?r = site/test-interface にアクセスすると、以下が表示されます。
この方法は、1か所でクラスを設定でき、他のコードは新しいクラスを自動的に使用するため便利です。