入门 PHP-没有任何第 3 方框架的 DI

Getting started PHP-DI without any 3rd party framework

我刚刚发现依赖注入,我想将它应用到我一直从事的中型项目中。我已经有一个 类 文件夹,其中包含系统

中使用的所有 类

/application/core/classes

我想知道如何配置 PHP-DI 以根据需要定位这些 类。

提前致谢

这里是PHP-DI的作者,你是用Composer安装的吗?

如果是,则在 composer.json 中配置您的文件夹,并在您的脚本中只需要 vendor/autoload.php。然后您可以开始使用该容器,它应该可以正常工作。例如:

$container = \DI\ContainerBuilder::buildDevContainer();

$yourObject = $container->get('YourClass');

现在请注意,此示例 不是 依赖项注入(如您所见,此处没有注入任何内容)。当您从容器 ($container->get()) 中获取对象时,您将代码耦合到容器。

在应用程序的根目录执行此操作很好,例如实例化您的控制器(或您想要的任何其他根对象)。但是控制器的依赖应该是注入的,而不是从容器中获取的(如果你想做依赖注入)。

顺便说一句,如果您想讨论更多话题,这里有一个聊天室:https://gitter.im/mnapoli/PHP-DI and of course the documentation