DI コンテナーの使用方法を理解しようとしています。
A、B、および C のように定義された 3 つのクラスがあるとします。
class A {}
class B
{
private $a;
public function set_a(A $a)
{
$this->a = $a;
}
}
class C
{
private $b;
public function set_b(B $b)
{
$this->b = $b;
}
}
今、私が実際に得ていないのは、index.php に書くことになっているものです。コンテナをインスタンス化してからオブジェクトに渡して、オブジェクトがコンテナに依存するようになるため、それを使用できるようにすることは良いことではないと読みました。しかし、それでは、 index.php に次のようなものを書かなければならないということですか?
$container = new Container();
$container->a = function($ctnr) {
return new A();
}
$container->b = function($ctnr) {
$b = new B();
$b->set_a($ctnr->a);
return $b;
}
$container->b = function($ctnr) {
$c = new C();
$c->set_b($ctnr->b);
return $c;
}
$c = $container->c;
これは行く方法ですか?