Zend framework 在哪里使用Zend/Zend 2中的依赖项注入容器

Zend framework 在哪里使用Zend/Zend 2中的依赖项注入容器,zend-framework,dependency-injection,zend-framework2,Zend Framework,Dependency Injection,Zend Framework2,这与DI的关系就像与Zend框架的关系一样。我的问题是在哪里使用DI容器。在引导初始化过程中,是否应该只使用它,而让应用程序的其余部分不知道它的存在?或者将其传递给控制器、模型、助手等,以便在需要时使用,这是一种良好的做法吗?Zend 2呢?因为它通常与依赖项注入有关,如果您试图编写可靠的代码,您应该练习这一点。我写了两篇关于依赖注入的文章,因为它涉及到开发人员在直接进入使用DiC的代码之前应该具备的背景知识(我认为): 我还编译了一些如何使用Zend\Di的示例,Zend\Di是ZF2代码库

这与DI的关系就像与Zend框架的关系一样。我的问题是在哪里使用DI容器。在引导初始化过程中,是否应该只使用它,而让应用程序的其余部分不知道它的存在?或者将其传递给控制器、模型、助手等,以便在需要时使用,这是一种良好的做法吗?Zend 2呢?

因为它通常与依赖项注入有关,如果您试图编写可靠的代码,您应该练习这一点。我写了两篇关于依赖注入的文章,因为它涉及到开发人员在直接进入使用DiC的代码之前应该具备的背景知识(我认为):

我还编译了一些如何使用Zend\Di的示例,Zend\Di是ZF2代码库中的DiC组件:

还有一点,我想说。。。一旦开始将DiC作为依赖项传递到控制器、模型等中。。。此时,您的DiC实际上成为服务定位器。这是完全可以接受的,但您需要提前意识到,使用服务定位器将/应该是您的设计目标的一部分

ZF2的下一个测试周期可能会更好地解决如何通过模块、控制器使用Di和服务定位器,以及如何将依赖关系推送到助手和模型中。所以请注意这一点


希望这能让您开始。

因为它与依赖项注入有关,如果您试图编写可靠的代码,您应该练习这一点。我写了两篇关于依赖注入的文章,因为它涉及到开发人员在直接进入使用DiC的代码之前应该具备的背景知识(我认为):

我还编译了一些如何使用Zend\Di的示例,Zend\Di是ZF2代码库中的DiC组件:

还有一点,我想说。。。一旦开始将DiC作为依赖项传递到控制器、模型等中。。。此时,您的DiC实际上成为服务定位器。这是完全可以接受的,但您需要提前意识到,使用服务定位器将/应该是您的设计目标的一部分

ZF2的下一个测试周期可能会更好地解决如何通过模块、控制器使用Di和服务定位器,以及如何将依赖关系推送到助手和模型中。所以请注意这一点


希望这能让你开始学习。

我一直在阅读一些答案。首先,据我所知,目前Zend framework 因此,您最好的选择是这里已经提到的服务定位器。我提出了一个Zend framework应用程序设置来实现这一点。请过目查看

简言之,它是

  • Zend应用程序引导类中的引导Symfony依赖项注入
  • 从Zend控制器中的1获取容器,您可以使用它检索服务

  • 我一直在读一些答案。首先,据我所知,目前Zend framework 因此,您最好的选择是这里已经提到的服务定位器。我提出了一个Zend framework应用程序设置来实现这一点。请过目查看

    简言之,它是

  • Zend应用程序引导类中的引导Symfony依赖项注入
  • 从Zend控制器中的1获取容器,您可以使用它检索服务

  • DI容器应该封装在复合根中:谢谢@MarkSeemann!很好的评论。DI容器应该封装在复合根中:谢谢@MarkSeemann!很好的评论。