依赖注入容器并定义所有(?)依赖项

时间:2013-05-08 18:54:20

标签: php design-patterns dependency-injection

我很困惑在哪里定义所有依赖项。

加载每个可能的依赖似乎是一个巨大的过度杀伤,而实际上可能根本就没有使用它。在需要的地方定义它们会导致代码重复。

哪里可以定义什么?可能一次启动依赖的配置?例如Logger或DB连接。

提前致谢。

1 个答案:

答案 0 :(得分:1)

在我的工作中,我们遇到了类似的问题,我们使用了基于Symfony2的方法。我们有一个简单的Dependency Container,它包含lambda函数,用于实际创建我们可能需要的依赖项,并在第一次使用时调用工厂。

类似的东西:

DC['AFactory'] = function() { return new A(); };

DC有一个依赖对象的“缓存”,所以每次你使用像DC-> get('A')这样的东西时,我们首先检查caché是否被填充,在这种情况下,你得到现有的实例,另外,调用工厂函数,存储在缓存中,然后得到结果。这样我们就不必在实际使用之前加载所有可能的依赖项。

相关问题