在PHP中手动创建/使用DI容器?
我试图理解如何使用DI容器 假设我有三个类:A、B和C,定义如下:在PHP中手动创建/使用DI容器?,php,dependency-injection,Php,Dependency Injection,我试图理解如何使用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; } } 现在我没
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;
这是要走的路吗?我想你理解这个概念 依赖注入的基本思想是将对象的实例化委托给框架 您可以编写自己的容器,但我建议您使用框架 大多数框架允许您决定应该注入哪些类型和位置
是一个很好的容器。我想你理解这个概念 依赖注入的基本思想是将对象的实例化委托给框架 您可以编写自己的容器,但我建议您使用框架 大多数框架允许您决定应该注入哪些类型和位置
是一个非常好的容器。关于容器的整个思想是解决依赖关系并执行对象初始化 我会: 选择你的容器。为了好玩,我写了一篇文章,这篇文章已经被应用于多个应用程序中。().
使用接口设计依赖项。(仅允许类依赖于其他接口)。注册您的类/实例,让容器完成所有的脏活。关于容器的整个想法是解决依赖关系并执行对象初始化 我会: 选择你的容器。为了好玩,我写了一篇文章,这篇文章已经被应用于多个应用程序中。(). 使用接口设计依赖项。(仅允许类依赖于其他接口)。注册您的类/实例,让容器完成所有的脏活