2016-06-13 7 views
0

Новое для ZF2 и попытка понять некоторые его нюансы.Zend Framework 2 - фильтры

У меня есть несколько вопросов:

Вопрос 1

Я использую конфигурацию, чтобы установить из входных фильтров для поля формы (например, ниже). Когда у вас есть фильтр и валидатор на том же элементе, как это, фильтрованные данные передаются в валидатор? Итак, в приведенном ниже примере, если я ввел «Hello world» с загрузкой пробела, это белое пространство будет удалено из строки до того, как валидатор оценит ее?

'name' => array(
      'required' => true, 
      'filters' => array(
       array('name' => 'Zend\Filter\StringTrim'), 
      ), 
      'validators' => array(
       array(
        'name' => 'Zend\Validator\StringLength', 
        'options' => array(
         'min' => 3, 
         'max' => 11 
        ), 
       ), 
      ), 
     ), 

Вопрос 2

Я видел примеры, когда люди установили фильтр, используя только имя, например, «strtolower» согласно приведенному ниже коду. Я не могу понять, установлен ли этот псевдоним где-то как с валидаторами в ValidatorPluginManager. Где указаны псевдонимы для фильтров?

'name' => array(
      'required' => true, 
      'filters' => array(
       array('name' => 'strtolower'), 
      ), 
      'validators' => array(/*validator stuff*/), 
     ), 

Настоятельно ценю любые советы, поскольку я хруст док-станции, но не могу найти ответы на эти вопросы.

Дронго

ответ

1

Вопрос 1

Да, при использовании входных фильтров значение будет первым фильтруются перед тем проверка происходит.

Вопрос2

Посмотрите на FilterPluginManager для всех псевдонимов, которые можно использовать для «запаса» фильтров.

Отметьте ValidatorPluginManager для обзора валидаторов.

+0

Спасибо, что было очень полезно. – Drongo

0

@BramGerritsen очень прямо в своем ответе, так что я upvoted его, но здесь некоторую дополнительную информацию к своему ответу за Вопрос 1:

Существуют особые случаи, когда проверка бывает до того фильтрации. Пример: the FileInput class. При загрузке файла файлы должны быть проверены до того, как мы сделаем что-либо еще, чтобы любая проверка была сделана до любых фильтров, которые могут переименовывать/перемещать/изменять файл ... (проверьте ссылку).
Я мог представить себе, что у других людей есть пользовательские классы ввода, где они делают то же самое (у меня действительно есть некоторые классы, подобные мне).