27cm
@27cm
TODO: Написать статус

Как заставить Zend\Form\Factory при создании форм создавать используемые фильтры через FilterPluginManage?

В конфигурационном файле модуля прописал собственный фильтр для создания его через FilterPluginManage:
return [
    // ...
    'filters' => [
        'invokables' => [
            'myfilter' => Application\Filter\MyFilter::class,
        ]
    ]
];


Не могу понять, как можно фабрике Zend\Form\Factory сообщить о своём фильтре, постоянно ловлю исключения "Zend\Filter\FilterPluginManager::get was unable to fetch or create an instance for myfilter". Мне также важно, чтобы мой фильтр создавался через FilterPluginManage.

Например, похожая задача, но не с фильтрами, а с кастомными элементами, прописанными в секции 'form_elements' конфигурации, решается так:
$formElementManager = $this->getServiceLocator()->get('FormElementManager');
$factory = new Zend\Form\Factory($formElementManager);
  • Вопрос задан
  • 315 просмотров
Решения вопроса 1
27cm
@27cm Автор вопроса
TODO: Написать статус
Работает такой вариант:
$filterManager = $this->getServiceLocator()->get('FilterManager');
$factory = new Zend\Form\Factory();
$factory->getInputFilterFactory()
        ->getDefaultFilterChain()
        ->setPluginManager($filterManager);


Ещё судя по обсуждению здесь фильтры должны будут подхватываться, если перечислить их в методе Module::getFilterConfig():
class Module implements Zend\ModuleManager\Feature\FilterProviderInterface
{
    // ...

    /**
     * {@inheritDoc}
     */
    public function getFilterConfig()
    {
        return [
            'invokables' => [
                'myfilter' => \Application\Filter\MyFilter::class,
            ],
        ];
    }
}

Но он не работает, да и вообще было бы странным, если работал. Всегда полагал, что нет разницы в том, где объявлять: в методах модуля или module.config.php
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
я бы на вашем месте в дебаг режиме посмотрел подхватил ли FilterPluginManager настройки конфига, может с конфигом что-то не так?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы