我有一些與我的應用程序的zf2到zf3遷移有關的問題。我已經完成了遷移指南並開始了描述那裏的遷移過程。將zf2遷移到zf3
根據遷移指南,控制器中不再有serviceLocator。我曾經在每個控制器動作中使用它,將可變數組(位於module.config.php),Doctrine MongoDB DocumentManager和Doctrine EntityManager注入到需要它們的模型中。現在,我收到如此多的不推薦使用的警告消息;
PHP推薦使用:使用的 Zend的\的ServiceManager \的ServiceManager :: getServiceLocator被廢棄了,因爲V3.0.0 ;請用傳送到工廠,而不是在 /var/www/html/LeapX/vendor/zendframework/zend-servicemanager/src/ServiceManager.php 在容器上線169
因爲我需要訪問配置變量和注入Doctrine DocumentManager和Doctrine EntityManager到我的模型,我不得不在我的控制器中調用$this->getServiceLocator()
。讓我知道如何解決這個問題。有沒有可能將這些依賴關係直接注入到我的Model類中?我是否需要爲模型使用工廠?
另一個問題是當涉及到控制器的工廠時,我是否需要爲我的應用程序的每個控制器創建單獨的工廠?有相當多的控制器數量在應用程序中的模塊內傳播。如果我爲每個控制器添加專用工廠,則會有兩倍的數量。讓我知道做到這一點的最佳方式。
這個答案可以在這裏找到:[中的ServiceManager ZF3(HTTPS: //stackoverflow.com/questions/42168619/servicemanager-in-zf3) –