0
我有一個服務類MyService
,我在控制器上使用它作爲控制器構造函數中的參數。不用說,我使用工廠實例化控制器,並使用工廠的服務定位器檢索MyService
,然後將其傳遞給實例化的控制器。ZF2 - 如何將服務注入視圖?
// factory
$sl = $sl->getServiceLocator();
$ms = $sl->get(MyService::class);
return new MyController($sm);
現在,我需要在視圖中的服務。我試着像這樣建立,將採取MyService
作爲依賴一個視圖助手,(類似控制器):
// view helper factory
$ms = $sl->get(MyService::class);
return new MyServiceViewHelper($ms);
但是,它不會正確實例MyService
。它崩潰說:
Catchable fatal error: Argument 1 passed to MyService::__construct() must be an instance of MyRepository, none given, called in /my-path/vendor/zendframework/zend-servicemanager/src/AbstractPluginManager.php
MyService
大約需要3庫的依賴關係,即由MyServiceFactory
自然提供。但是,由於某種原因,視圖幫助程序沒有正確地調用工廠或類似的東西,導致實例化不正確。
所以我的下一個想法是:也許這不是你如何注入服務的觀點。所以現在我問:
如何注入服務的意見本身?
編輯:請不要說「通過它從控制器」。