依赖注入 php
Dependency injection php
我构建了一个简单的依赖项注入容器,我将其传递给需要它的 classes,一切正常,一切正常。
我的问题是说我有 2 class例如
class A {
public function __construct() {
}
}
class B {
public function __construct(A $a) {
}
}
我应该在 class 本身还是在注入容器中强制执行类型提示,例如;
$di->set('A', function() {
return new A();
});
$di->set('B', function(A $a) {
return new B($a);
});
我应该两者都做还是 either/or。
关于为什么使用一个比另一个更好的答案等等?
谢谢。
我会使用第一种情况,在 class 本身中强制执行类型提示。
这将使代码的读者清楚 class 的实际依赖项是什么。
如果您决定更改 DI 容器(或假设删除它)或在其他项目中重用 classes,最好在 class 本身中提供类型提示。
DI 容器只是为了帮助您管理依赖项。
我构建了一个简单的依赖项注入容器,我将其传递给需要它的 classes,一切正常,一切正常。
我的问题是说我有 2 class例如
class A {
public function __construct() {
}
}
class B {
public function __construct(A $a) {
}
}
我应该在 class 本身还是在注入容器中强制执行类型提示,例如;
$di->set('A', function() {
return new A();
});
$di->set('B', function(A $a) {
return new B($a);
});
我应该两者都做还是 either/or。
关于为什么使用一个比另一个更好的答案等等?
谢谢。
我会使用第一种情况,在 class 本身中强制执行类型提示。
这将使代码的读者清楚 class 的实际依赖项是什么。
如果您决定更改 DI 容器(或假设删除它)或在其他项目中重用 classes,最好在 class 本身中提供类型提示。
DI 容器只是为了帮助您管理依赖项。