У меня есть общий модуль в моем приложении Zend Framework 2 с некоторыми фильтрами в нем.В Zend Framework 2 Module.php метод getFilterConfig() никогда не называется
Для моего лица, я создал класс фильтра с InputFilterAwareInterface:
public function getInputFilter()
{
if (!$this->inputFilter) {
$inputFilter = new InputFilter();
$factory = new InputFactory();
$inputFilter->add(
$factory->createInput(
array(
'name' => 'desc',
'required' => false,
'filters' => array(
array('name' => 'myfilter'),
),
)
)
);
$this->inputFilter = $inputFilter;
}
return $this->inputFilter;
}
Чтобы загрузить MyFilter Я реализовал module.php родовым с в FilterProviderInterface:
public function getFilterConfig()
{
// Breakpoint at next line
return array(
'factories' => array(
'myfilter' => function($sl) {
$myfilter = $sl->getServiceLocator()->get('myfilterfactory');
return new Filter\Filter\MyFilter($myfilter);
},
),
);
}
Когда я запускаю приложение, генерируется исключение:
Zend\ServiceManager\Exception\ServiceNotFoundException
Zend\Filter\FilterPluginManager::get was unable to fetch or create an instance for myfilter
Я побежал отладчик и понял, что getFilterConfig() метод никогда не вызывается, потому что контрольная точка не срабатывает.
Что мне нужно вставить в мой код, чтобы загрузить конфигурацию фильтра?
EDIT:
код выполняется, но отладчик не останавливается на точке останова. Когда я вставляю дополнительный оператор и устанавливаю точку останова на это, выполнение останавливается.
В контроллере я сделать следующее
$serviceManager = $this->getServiceLocator();
$filterManager = $serviceManager->get('FilterManager');
и в менеджере фильтра у меня MyFilter в заводов массива. Но все же я получаю исключение.
Как известно фабрика фильтров Zend \ InputFilter \ Factory (как InputFactory)?
сделал у вас есть завод, как эта общественная функция getServiceConfig() { возвращение массива ( 'invokables' => массив ( 'myfilterfactory' => 'Application \ Filter \ MyFilterFactory', )); } – Whisher
Да, проблема заключается в том, что метод не выполняется, а не ошибка в методе. – Matthias
Я провел тест в своем модуле, и он работает. Постарайтесь отправить больше кода. – Whisher