如何以"right"的方式使用Auryn进行DI?

How to use Auryn for DI in the "right" way?

我正在从头开始编写一个小应用程序,我想使用 packagist 的一些包。对于 DI,我选择了 Auryn。

现在,我了解到的关于 Auryn 的第一件事就是它试图避免成为依赖容器,并且在文档中明确写道你不应该将 Auryn 的实例用作容器,通过通过您的应用程序的各种 classes。

我同意,但是,因为我有一个 "main" class 作为应用程序所有 backbone 的包装器,我认为我应该在这个主要 class 的构造函数中只有 Injector 对象的依赖项(这是主要的 Auryin 对象),然后在 class 的构造函数中我应该连接所有东西以准备好进行 DI 和反射。

另一种方法是不使用 main class,只在我的索引文件中使用干净的程序代码,以与 Auryn 相同的方式将所有连接在一起。

您认为最好的处理方法是什么?

依赖注入背后的想法是将各种 classes "wired up" 的所有信息收集在一个地方(您的 DI 容器 class / DI 配置文件),而不是在你的代码中传播和复制它。我假设你的 "Main"-class 在你的 Index.php 中只实例化了一次,所以无论你是将 Auryn 实例传递给 Main 的构造函数还是使用 Auryn 获取 Main 的实例,都没有明显的区别.