我使用Zend Framework 2和Doctrine 2编写应用程序。我有两个月的两种技术经验。
我使用Doctrine存储库文档方案。我需要访问存储库类中的当前用户。我无法弄清楚如何在存储库中获取serviceManager实例。我阅读了很多文章,但仍然无法理解依赖注入,我需要在ZF2中管理服务。 有人可以解释我如何将服务注入抽象类(如基础库)?
答案 0 :(得分:0)
您需要实施ServiceLocatorAwareInterface
来延迟检索serviceManager
。
引用ZF2文件:
此外,在某些情况下,您可能希望将ServiceManager接收为延迟检索依赖项;因此,您可能希望实现ServiceLocatorAwareInterface并了解有关ServiceManager API的更多详细信息。
请参阅ZF2 Quick Start - service manager.
但说实话,您不应该在存储库类中使用任何服务。保持简单和干净只是为了检索数据。
当你调用你的存储库类时,你应该像这样传递用户:
$data = $this->getEntityManager()->getRepository('Common\Entity\User')->myMethod($user);