Module 如何从Zend Framewok 2中的模块#getViewHelperConfig()调用服务定位器对象上的自定义服务?
我有一个Module 如何从Zend Framewok 2中的模块#getViewHelperConfig()调用服务定位器对象上的自定义服务?,module,zend-framework2,factory,view-helpers,service-locator,Module,Zend Framework2,Factory,View Helpers,Service Locator,我有一个ViewHelper,想在模块#getViewHelperConfig()中初始化它: 您需要获取主服务定位器。getViewHelperConfig()中的$serviceManager是视图帮助器服务定位器 要在getViewHelperConfig()函数中获取主服务定位器,请执行以下操作: $maimSm=$serviceManager->getServiceLocator() 因此: public function getViewHelperConfig() { ret
ViewHelper
,想在模块#getViewHelperConfig()
中初始化它:
您需要获取主服务定位器。getViewHelperConfig()
中的$serviceManager
是视图帮助器服务定位器
要在getViewHelperConfig()函数中获取主服务定位器,请执行以下操作:
$maimSm=$serviceManager->getServiceLocator()代码>
因此:
public function getViewHelperConfig() {
return array(
'factories' => array(
'searhForm' => function($serviceManager) {
$helper = new View\Helper\SearchForm(array('render' => true, 'redirect' => false));
$helper->setViewTemplate('search/search/search-courses');
$maimSm = $serviceManager->getServiceLocator();
$searchForm = $maimSm->get('SearchFormCourseSearchForm');
$helper->setSearchForm($searchForm);
return $helper;
}
)
);
}
有相当多的帖子更详细地解释了这一策略,我会去寻找它们
编辑
有关ZF2中服务管理器/定位器的详细说明,请参阅。谢谢,非常有用!嗯,我对“主”服务定位器一无所知。我想,整个应用程序只有一个“中心”服务定位器……我认为博客文章很好地解释了这一点:)
public function getViewHelperConfig() {
return array(
'factories' => array(
'searhForm' => function($serviceManager) {
$helper = new View\Helper\SearchForm(array('render' => true, 'redirect' => false));
$helper->setViewTemplate('search/search/search-courses');
$maimSm = $serviceManager->getServiceLocator();
$searchForm = $maimSm->get('SearchFormCourseSearchForm');
$helper->setSearchForm($searchForm);
return $helper;
}
)
);
}