У меня есть ViewHelper
и я хочу инициализировать его в Module#getViewHelperConfig()
:
<?php
namespace Search;
use statements...
class Module implements
ConfigProviderInterface,
ServiceProviderInterface,
AutoloaderProviderInterface,
ViewHelperProviderInterface {
public function getConfig() ...
public function getAutoloaderConfig() ...
public function getServiceConfig() {
$breakpoint = null;
try {
return array (
'factories' => array(
...
'SearchFormCourseSearchForm' => function ($serviceManager) {
$cacheService = $serviceManager->get('Cache\Model\CityStorage');
$cities = $cacheService->getCities();
$searchForm = new Form\CourseSearchForm($cities);
return $searchForm;
},
)
);
} ...
}
public function getViewHelperConfig() {
$breakpoint = null;
return array(
'factories' => array(
'searhForm' => function($serviceManager) {
$helper = new View\Helper\SearchForm(array('render' => true, 'redirect' => false));
$helper->setViewTemplate('search/search/search-courses');
$searchForm = $serviceManager->get('SearchFormCourseSearchForm');
$helper->setSearchForm($searchForm);
return $helper;
}
)
);
}
Но ZF не звонит на мой завод. Вместо этого он пытается создать новый экземпляр SearchFormCourseSearchForm
:
Неустранимая ошибка: необработанное исключение «Zend\ServiceManager\Exception\ServiceNotFoundException» с сообщением «Zend\ServiceManager\ServiceManager::get не удалось получить или создать экземпляр для SearchFormCourseSearchForm» в /var/www/bar/foo/vendor/zendframework/ zendframework/library/Zend/ServiceManager/ServiceManager.php в строке 456
Как мне использовать сервисные фабрики, полученные от Module#getServiceConfig()
, создавая ViewHelper
в Module#getViewHelperConfig()
?