我构建了一个简单的依赖注入容器,我传递了需要它的类,一切正常,一切都很好。
我的问题是说我有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);
});
我应该同时做两件事还是两件事。
为了解答为什么使用一个比另一个更好?
感谢。
答案 0 :(得分:0)
我会使用第一种情况,在类本身中强制执行类型提示。
这将使代码的读者清楚地了解该类的实际依赖性。
如果您决定更改DI容器(或假设将其删除)或重复使用其他项目中的类,最好在类本身中使用类型提示。
DI容器只是为了帮助您管理依赖关系。