私はDIコンテナを使用する方法を理解しようとしています。PHPでDIコンテナを手動で作成/使用しますか?
のは、私は三つのクラスがあるとしましょう:A、B、およびCはそうのように定義された:
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;
これは方法ですか?