Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 这里需要依赖项注入容器吗_Php_Oop_Design Patterns_Dependency Injection_Inversion Of Control - Fatal编程技术网

Php 这里需要依赖项注入容器吗

Php 这里需要依赖项注入容器吗,php,oop,design-patterns,dependency-injection,inversion-of-control,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(

在我的程序开始时,我需要设置以下依赖项:

//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();
在这里,您可以看到我的主应用程序有一些依赖项,这是引导时注入所需的所有代码

这是否保证了依赖项注入容器


如果不是,工厂方法会更合适吗?

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

从文章中:

大多数情况下,您不需要依赖项注入容器来 从依赖注入中获益

但是,当您需要使用大量资源管理大量不同的对象时 依赖项,依赖项注入容器真的很有用 (例如,考虑一个框架)

我相信正确的答案与你的情况有多复杂有关。在某个时候,某个地方,某个地方,必须知道如何把所有这些放在一起。如果它变得乏味和丑陋,那么它可能是一个容器的时间


实际上,你从来没有真正拥有过一个容器。这通常是一个好主意,因为它提供了灵活性。

因此在我的示例中,基于我展示的对象,您认为需要di容器吗?我不喜欢那篇文章,因为它更像是一种工厂模式。但我只是在学习,所以我显然弄错了。需要吗?不是。以后再考虑灵活性和可维护性好吗?是的,依我看,对你来说,保持现状是完全可以接受的。如果就这些,那就别管了。但是下一次你需要增加复杂性时,考虑一下那个容器。谢谢,因为我想做的最后一件事就是让事情变得更复杂。我认为设计一些东西实际上可以让它看起来像你不知道你在做什么