2014-11-21 66 views
-1

我使用Zend Framework 2和Doctrine 2編寫應用程序。我對這兩種技術都有2個月的使用經驗。如何在抽象類中獲取ServiceManager

我使用Doctrine知識庫文檔方案。我需要訪問存儲庫類中的當前用戶。我不知道如何獲取存儲庫中的serviceManager實例。我閱讀了很多文章,但仍然無法理解依賴注入,我需要在ZF2中管理服務。 有人可以解釋我如何將服務注入抽象類(如基礎知識庫)嗎?

+0

爲什麼需要整個的ServiceManager?此外,也許你需要創建一個單獨的服務來管理你對用戶的需求。 您也可以將用戶注入存儲庫方法。 – SenseException 2014-11-21 20:25:44

回答

0

您需要執行ServiceLocatorAwareInterface來懶惰地檢索serviceManager。從ZF2文件

報價:

此外,也有一些情況下,您可能想收到的ServiceManager懶,檢索依賴;因此,您可能需要實現ServiceLocatorAwareInterface並瞭解有關ServiceManager的API的更多詳細信息。

ZF2 Quick Start - service manager.

不過說實話,你不應該你的資料庫類中使用任何服務。保持簡單和乾淨只是爲了檢索數據。

當你罵你的資料庫類,你應該通過像這樣的用戶:

$data = $this->getEntityManager()->getRepository('Common\Entity\User')->myMethod($user);