このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン | |||
basic-library:league-container:3.3 [2020/04/19 16:41] y2sunlight [League/Containerについて] |
basic-library:league-container:3.3 [2020/04/19 22:14] (現在) y2sunlight |
||
---|---|---|---|
行 79: | 行 79: | ||
===== テストプログラム ===== | ===== テストプログラム ===== | ||
- | パッケージのテストフォルダ(test\league-container\)に、以下のテスト用のコードを作成します。この例は League/ | + | 以下の例題は、コンストラクター・インジェクションを3つの方法で行ったものです。最初はDIコンテナーを使用しない場合、2つ目はDIコンテナーを使用した場合、最後にAuto Wiringを使ったものです。テスト用のコードはテストフォルダ(test\league-container\)に、作成します。この例は League/ |
* Foo.php --- 2つのサービス(BarとBza)を持つFooコントローラ | * Foo.php --- 2つのサービス(BarとBza)を持つFooコントローラ | ||
行 130: | 行 130: | ||
\\ | \\ | ||
- | ==== 【テスト1】手動によるコンストラクター・インジェクション | + | ==== 【テスト1】DIコンテナを使用しない場合 |
DIコンテナーを使わずに、サービスをコントローラに手動で注入している例です。尚、例題ではComposerによるAutoloadを使用していないので、spl_autoload_register()で代替しています。 | DIコンテナーを使わずに、サービスをコントローラに手動で注入している例です。尚、例題ではComposerによるAutoloadを使用していないので、spl_autoload_register()で代替しています。 | ||
行 165: | 行 165: | ||
\\ | \\ | ||
- | ==== テスト2 ==== | + | ==== 【テスト2】DIコンテナを使用する場合 |
DIコンテナ― によるコンストラクター・インジェクションの例です。依存関係をクラスコンストラクターに渡すことは、依存性注入の最も簡単な方法です。League/ | DIコンテナ― によるコンストラクター・インジェクションの例です。依存関係をクラスコンストラクターに渡すことは、依存性注入の最も簡単な方法です。League/ | ||
行 208: | 行 208: | ||
\\ | \\ | ||
- | ==== テスト3 ==== | + | ==== 【テスト3】Auto Wiringを使用する場合 |
League/ | League/ | ||
行 250: | 行 250: | ||
\\ | \\ | ||
- | ==== テスト4 ==== | + | ==== 【テスト4】Auto Wiringを使用する場合(キャッシュ有効) |
デフォルトでは ReflectionContainer は、要求の度にそれを解決しようとします。ReflectionContainer でキャッシュ機能を有効にするには以下のようにcacheResolutions()を使用します。 | デフォルトでは ReflectionContainer は、要求の度にそれを解決しようとします。ReflectionContainer でキャッシュ機能を有効にするには以下のようにcacheResolutions()を使用します。 | ||