制御の反転 (Inversion of Control、略して IoC) は、コンピューター コード間の結合を減らすために使用できるオブジェクト指向プログラミングの設計原則です。最も一般的な方法は、依存性注入 (DI) と呼ばれます。
構成を通じて依存関係インターフェイスの実装を変更することは、依存関係注入の最も基本的かつ中心的な機能でもあります
依存関係実装のインスタンス スコープ、シングルトン、スレッドごとに 1 つ、リクエストごとに 1 つなどを柔軟に制御します。
#依存パラメーター、依存依存関係などの管理
#コードはより簡潔で、ロジックはより明確ですモックはテストに便利です
(推奨学習: PHP プログラミングの入門から熟練度まで) ) 一般に、アプリケーション内の関数ブロックとクラス間の依存関係を、統一されたフレームワークを通じて一元管理することです。
簡単な依存関係注入の例については、次のコードを見てください:
<?php class Container { private $s=array(); function __set($k, $c) { $this->s[$k]=$c; } function __get($k) { return $this->s[$k]($this); } }
<?php class A { private $container; public function __construct(Container $container) { $this->container = $container; } public function doSomeThing() { //do something which needs class B $b = $this->container->getB(); //to do } }
次に、クラス B をコンテナ クラスに注入します:
$c = new Container(); $c->setB(new B());
クラス B が渡されないように、匿名関数を渡すこともできます。クラス B はすぐにインスタンス化されます。ただし、インスタンス化作業は実際に呼び出された場合にのみ完了します:
$c = new Container(); $c->setB(function (){ return new B(); });
以上がPHPの依存性注入はどのような用途に使われるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。