-1
我使用Zend Framework 2和Doctrine 2編寫應用程序。我對這兩種技術都有2個月的使用經驗。如何在抽象類中獲取ServiceManager
我使用Doctrine知識庫文檔方案。我需要訪問存儲庫類中的當前用戶。我不知道如何獲取存儲庫中的serviceManager實例。我閱讀了很多文章,但仍然無法理解依賴注入,我需要在ZF2中管理服務。 有人可以解釋我如何將服務注入抽象類(如基礎知識庫)嗎?
我使用Zend Framework 2和Doctrine 2編寫應用程序。我對這兩種技術都有2個月的使用經驗。如何在抽象類中獲取ServiceManager
我使用Doctrine知識庫文檔方案。我需要訪問存儲庫類中的當前用戶。我不知道如何獲取存儲庫中的serviceManager實例。我閱讀了很多文章,但仍然無法理解依賴注入,我需要在ZF2中管理服務。 有人可以解釋我如何將服務注入抽象類(如基礎知識庫)嗎?
您需要執行ServiceLocatorAwareInterface
來懶惰地檢索serviceManager
。從ZF2文件
報價:
此外,也有一些情況下,您可能想收到的ServiceManager懶,檢索依賴;因此,您可能需要實現ServiceLocatorAwareInterface並瞭解有關ServiceManager的API的更多詳細信息。
見ZF2 Quick Start - service manager.
不過說實話,你不應該你的資料庫類中使用任何服務。保持簡單和乾淨只是爲了檢索數據。
當你罵你的資料庫類,你應該通過像這樣的用戶:
$data = $this->getEntityManager()->getRepository('Common\Entity\User')->myMethod($user);
爲什麼需要整個的ServiceManager?此外,也許你需要創建一個單獨的服務來管理你對用戶的需求。 您也可以將用戶注入存儲庫方法。 – SenseException 2014-11-21 20:25:44