#はじめに
依存性注入とは何かご存知ですか?依存関係注入 (DI) の概念は奥が深いように思えますが、いくつかの新しい PHP フレームワークを使用したことがある場合は、すべて依存関係注入を使用してクラス間の依存関係を処理するため、DI についてよく理解しておく必要があります。php で依存関係を渡すための 3 つのオプション
実際、DI を理解するには、まず php で依存関係を渡す方法を理解する必要があります。 最初の解決策であり、最も望ましくない解決策は、次のコードに示すように、クラス A で new キーワードを直接使用してクラス B を作成することです。<?php class A { public function __construct() { $b = new B(); } }
2 番目のオプションは、クラス A
のメソッドに必要なクラス B を渡すことです。次のコードが表示されます。<?php class A { public function __construct(B $b) { } }
3 番目のオプションは、次のコードに示すように、set メソッドを使用して
を渡すことです。<?php class A { public function setB(B $b) { $this->b = $b; } }
依存性注入の簡単な例
次のコードは twittee からのものです:<?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 } }
$c = new Container(); $c->setB(new B());
$c = new Container(); $c->setB(function (){ return new B(); });
以上がPHPの依存性注入とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。