我需要一个依赖注入容器吗?

时间:2012-08-26 09:55:48

标签: php oop design-patterns dependency-injection inversion-of-control

我的程序开头需要设置以下依赖项:

//Set up dependencies
$fileSettings  = array(12, 'extra_lines', 'close_on_save');
$exporter      = new Exporter('exporterpath/filename.txt', $fileSettings);
$outputStream  = new OutputStream();
$businessModel = new BusinessModel('param1', 'param2');

//Run application
$application   = new Application($exporter, $outputStream, $businessModel);
$application->start();

所以在这里你可以看到我对我的主应用程序有一些依赖关系,这是bootstrap所需的代码,以便注入所需的一切。

这是否保证依赖注入容器?

如果没有,工厂方法会更合适吗?

1 个答案:

答案 0 :(得分:2)

这是一篇很好的依赖注入文章(PHP甚至!)。

http://fabien.potencier.org/article/12/do-you-need-a-dependency-injection-container

来自文章:

  

大多数情况下,您不需要依赖注入容器   受益于依赖注入。

     

但是当你需要管理很多不同的对象时   依赖关系,依赖注入容器可能真的很有帮助   (例如,考虑一个框架)。

我认为正确答案与您的方案的复杂程度有关。在某些时候,某些地方必须知道如何把所有这些放在一起。如果它变得乏味和丑陋,那么它可能是容器的时候了。

实际上,你实际上 实际上没有容器。由于它提供的灵活性,它通常只是一个好主意。