依赖注入php

时间:2015-02-14 19:43:13

标签: object dependency-injection type-hinting

我构建了一个简单的依赖注入容器,我传递了需要它的类,一切正常,一切都很好。

我的问题是说我有2个班,比如

class A {
    public function __construct() {

    }
}

class B {
    public function __construct(A $a) {

    }
}

我是否应该在类本身或注入容器中强制执行类型提示,例如;

$di->set('A', function() {
     return new A();
});

$di->set('B', function(A $a) {
     return new B($a);
});

我应该同时做两件事还是两件事。

为了解答为什么使用一个比另一个更好?

感谢。

1 个答案:

答案 0 :(得分:0)

我会使用第一种情况,在类本身中强制执行类型提示。

这将使代码的读者清楚地了解该类的实际依赖性。

如果您决定更改DI容器(或假设将其删除)或重复使用其他项目中的类,最好在类本身中使用类型提示。

DI容器只是为了帮助您管理依赖关系。