php - ZF2 console error - Get was unable to fetch or create an instance for ViewRenderer -
php - ZF2 console error - Get was unable to fetch or create an instance for ViewRenderer -
i have problem doctrine console. have mailservicefactory.php containing code:
namespace application\service; utilize zend\servicemanager\factoryinterface; utilize zend\servicemanager\servicelocatorinterface; class mailservicefactory implements factoryinterface { public function createservice(servicelocatorinterface $servicelocator) { $i_render = $servicelocator->get('viewrenderer'); $a_config = $servicelocator->get('config'); homecoming new mailservice($i_render, $a_config); } } utilize zend\servicemanager\factoryinterface; utilize zend\servicemanager\servicelocatorinterface; class mailservicefactory implements factoryinterface { public function createservice(servicelocatorinterface $servicelocator) { $i_render = $servicelocator->get('viewrenderer'); $a_config = $servicelocator->get('config'); homecoming new mailservice($i_render, $a_config); } }
and functions works, when execute vendor/bin/doctirne-module
error below:
fatal error: uncaught exception 'zend\servicemanager\exception\servicenotfoundexception' message 'zend\servicemanager\servicemanager::get unable fetch or create instance viewrenderer' in /users/daniele/apps/corradini.com/www/vendor/zendframework/zendframework/library/zend/servicemanager/servicemanager.php:529
why i'm getting error?
you cannot viewrenderer
straight servicelocator
on console requests because not in stage since request not httprequest
.
instead of viewrenderer
, can seek passing phprenderer
instance service , render viewmodel
using that. example:
use zend\view\renderer\phprenderer; class mailservicefactory implements factoryinterface { public function createservice(servicelocatorinterface $servicelocator) { $renderer = new phprenderer(); $a_config = $servicelocator->get('config'); homecoming new mailservice($renderer, $a_config); }
now in mailservice:
use zend\view\renderer\rendererinterface; utilize zend\view\model\viewmodel; class mailservice { protected $renderer; public function __construct(rendererinterface $renderer, $config) { $this->renderer = $renderer; // set config etc.. } public function foomethod() { $model = new viewmodel(); $model->settemplate('path/to/template.phtml'); $result = $this->renderer->render($model); // $result contains rendered html markup }
hope helps.
php doctrine2 zend-framework2 command-line-interface
Comments
Post a Comment