PHP依赖注入 - 疙瘩等- 为什么使用关联数组与 getters?
我们正在考虑将依赖注入容器集成到我们的项目中。我看过的每个DIC都使用关联数组和/或魔术方法。例如,下面是来自“痘痘”页面的示例:
$container['session_storage'] = function ($c) {
return new $c['session_storage_class']($c['cookie_name']);
};
$container['session'] = function ($c) {
return new Session($c['session_storage']);
};
这是有原因的吗?我讨厌在我的代码中使用字符串,而不是将要在某个地方显示的文字字符串。你失去了IDE的强大功能(这使得代码更难维护,这是我们试图避免的!
我更喜欢这样:
class Container {
function getSessionStorage()
{
return new $this->getSessionStorageClass($this->getCookieName);
}
function getSession()
{
return new Session($this->getSessionStorage());
}
}
有理由不这样做吗?我是否错过了一些疙瘩的魔力,如果我们走这条路,这些魔力将不起作用?