Содержание


Элементы


elements, формы, form, ЗФ2, Zend Framework 2, ZF2, ру, ru







Вступление

 

Набор специализированных элементов предназначен для выполнения различных задач. Включают в себя HTML5 элементы с соответствующими валидаторами, Csrf элементы для предотвращения  Cross Site Request Forgery атак, Captcha элементы.

 

Фабрика была создана для упрощения использования  специализированных элементов и Zend\Form\Fieldset.

 


Базовое использование

 

Как минимум, каждый элемент в группе должен иметь свое имя. Так же можно определить атрибуты, которые будут определять рендеринг в шаблоне вида.

 

use Zend\Form\Element;
use Zend\Form\Form;
 
$username = new Element\Text('username');
$username
    ->setLabel('Username')
    ->setAttributes(array(
        'class' => 'username',
        'size'  => '30',
    ));
 
$password = new Element\Password('password');
$password
    ->setLabel('Password')
    ->setAttributes(array(
        'size'  => '30',
    ));
 
$form = new Form('my-form');
$form
    ->add($username)
    ->add($password);

Общедоступные методы

 

setName(string $name)

Задает имя элемента

 

getName()

Получает имя элемента

Тип  возвращаемого  значения:  строка

 

setValue(string $value)

Задает значение элемента.


getValue()

Получает значение элемента.

Тип  возвращаемого  значения:  строка

 

setLabel(string $label)

Задает содержимое « label » элемента.


getLabel()

Получает содержимое « label » элемента.

Тип  возвращаемого  значения:  строка

 

setLabelAttributes(array $labelAttributes)

Задает атрибуты, используемые вместе с « label ».


getLabelAttributes()

Получает атрибуты, используемые вместе с « label ».

Тип  возвращаемого  значения:  массив

 

setOptions(array $options)

Задает настройки элемента. Доступные опции: «label» и «label_attributes», которые соответственно вызывают методы «setLabel» и «setLabelAttributes».


setAttribute(string $key, mixed $value)

Установить атрибут для одного элемента.


getAttribute(string $key)

Получить атрибут для одного элемента.

Тип  возвращаемого  значения:  смешанный


hasAttribute(string $key)

Проверяет, задан ли проверяемый атрибут у элемента.

Тип  возвращаемого  значения:  boolean

 

setAttributes(array|Traversable $arrayOrTraversable)

Задает несколько атрибутов сразу.


getAttributes()

Получить все заданные атрибуты.

Тип  возвращаемого  значения:  array|Traversable

 

clearAttributes()

Удалить все элементы для заданного элемента.


setMessages(array|Traversable $messages)

Задать допустимые сообщения, которые будут выводиться в случае ошибки при проверке на валидность.


getMessages()

Получить заданные сообщения об ошибках.

Тип  возвращаемого  значения:  array|Traversable


Стандартные элементы

 

Button (кнопка)

 

Zend\Form\Element\Button предоставляет кнопку ввода (input) формы. Можно использовать с помощником вида Zend/Form/View/Helper/FormButton.

 

Zend\Form\Element\Button расширяет Zend\Form\Element\.

 

Базовоеи спользование

use Zend\Form\Element;
use Zend\Form\Form;
 
$button = new Element\Button('my-button');
$button->setLabel('My Button')
       ->setValue('foo');
 
$form = new Form('my-form');
$form->add($button);

Captcha (Капча)

 

Zend\Form\Element\Captchа используется в формах, где аутентификация пользователей не обязательно, но необходимо избавиться от спама. Используется с одним из помощников видов Zend/Form/View/Helper/Captcha/*, соответствующий адаптеру Captchа.

 

Базовое использование

 

Адаптер Captchа должен быть прикреплен в порядке валидации. Более подробно в разделе CAPTCHA.

use Zend\Captcha;
use Zend\Form\Element;
use Zend\Form\Form;
 
$captcha = new Element\Captcha('captcha');
$captcha
    ->setCaptcha(new CaptchaDumb())
    ->setLabel('Please verify you are human');
 
$form = new Form('my-form');
$form->add($captcha);

Объявление через массив:

  use Zend\Captcha;
 use Zend\Form\Form;
 
 $form = new Form('my-form');
 $form->add(array(
     'type' => 'Zend\Form\Element\Captcha',
     'name' => 'captcha',
     'options' => array(
             'label' => 'Please verify you are human',
             'captcha' => new CaptchaDumb(),
     ),
 ));

Общедоступные методы

 

Следующие методы являются дополнением к унаследованным методам Zend\Form\Element\.

 

setCaptcha(array|Zend\Captcha\AdapterInterface $captcha)

Устанавливает адаптер Captcha на заданный элемент. Если «$captcha» -  массив, то будет использоваться Zend\Captcha\Factory::factory() для создания адаптера из настроек, находящихся в массиве.


getCaptcha()

Получить адаптер Captcha, использующийся в данном элементе.

Тип  возвращаемого  значения:  Zend\Captcha\AdapterInterface

 

getInputSpecification()

Возвращает фильтры, включая фильтр Zend\Filter\StringTrim и валидатор CAPTCHA.

Тип  возвращаемого  значения:  массив

 

Checkbox (Флажок)

 

Zend\Form\Element\Checkbox используется вместе с помощником вида Zend\Form\View\Helper\FormCheckbox с заданным типом (type) «checkbox».   Этот элемент добавляет валидатор «InArray».

 

Базовое использование

 

Элемент автоматически добавляет «type» со значением «checkbox».

use Zend\Form\Element;
use Zend\Form\Form;
 
$checkbox = new Element\Checkbox('checkbox');
$checkbox->setLabel('A checkbox');
$checkbox->setUseHiddenElement(true);
$checkbox->setCheckedValue("good");
$checkbox->setUncheckedValue("bad");
 
$form = new Form('my-form');
$form->add($checkbox);

Используя массив:

 

use Zend\Form\Form;
 
     $form = new Form('my-form');
     $form->add(array( 
             'type' => 'Zend\Form\Element\Checkbox',
             'name' => 'checkbox',
             'options' => array(
                     'label' => 'A checkbox',
                     'use_hidden_Element' => true,
                     'checked_value' => 'good',
                     'unchecked_value' => 'bad'
             )
     ));

Общедоступные методы

 

Следующие методы являются дополнением к унаследованным методам Zend\Form\Element\ .

 

setOptions(array $options)

Задать опции для элемента с типом «Checkbox». Принимаемыеопции: «use_hidden_Element\», «checked_value», «unchecked_value». Которые соответственно вызывают методы «setUseHiddenElement\», «setCheckedValue», «setUncheckedValue».

 

setUseHiddenElement\(boolean $useHiddenElement\)

Если установлено в «TRUE», то помощник вида создаст скрытый элемент, содержащий не выбранные значения.


useHiddenElement\()

Проверяет, есть ли скрытые элементы.

Тип  возвращаемого  значение:  boolean


setCheckedValue(string $checkedValue)

Задать значение, которое будет использоваться при выборе «флажка».


getCheckedValue()

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

Тип  возвращаемого  значение:  строка


setUncheckedValue(string $uncheckedValue)

Задать значение, которое будет использоваться, если не выбрано ни одного флажка. Для этого нужно «use_hidden_Element\» установить в «TRUE»


getUncheckedValue()

Получить значение, которое будет использоваться, если не выбрано ни одного флажка.

Тип  возвращаемого  значение:  строка

 

getInputSpecification()

Возвращает фильтры, включая Zend\Validator\InArray.

Тип  возвращаемого  значение:  массив

 

Collection (Коллекции)

 

Иногда возникают ситуации, когда необходимо добавлять «input»  или их наборы несколько раз. Например, когда Вы точно не знаете, сколько именно полей должно быть. Более подробно в разделе Zend\Collection.

 

Zend\Form\Element\Collection используется вместе с помощником вида Zend\Form\View\Helper\FormCollection.

 

Базовое использование.

use Zend\Form\Element;
use Zend\Form\Form;
 
$colors = new Element\Collection('collection');
$colors->setLabel('Colors');
$colors->setCount(2);
$colors->setTargetElement(new Element\Color());
$colors->setShouldCreateTemplate(true);
 
$form = new Form('my-form');
$form->add($colors);

Через массив:

 use Zend\Form\Element;
 use Zend\Form\Form;
 
     $form = new Form('my-form');
     $form->add(array( 
             'type' => 'Zend\Form\Element\Collection',
             'options' => array(
                     'label' => 'Colors',
                     'count' => 2,
                     'should_create_template' => true,
                     'target_Element' => new Element\Color()
             )
     ));

Общедоступные методы

 

Следующие методы являются дополнением к унаследованным методам Zend\Form\Element.

 

setOptions(array $options)

Задает настройки для элемента с типом «Collection». Допускаютсятакие: «target_Element\», «count», «allow_add», «allow_remove», «should_create_template», «template_placeholder». Вызывают соответственно методы: setTargetElement, setCount, setAllowAdd, setAllowRemove, setShouldCreateTemplate, setTemplatePlaceholder.

 

setCount($count)

Задается количество раз, которое помощник вида Zend/Form/View/Helper/FormCollection должен отобразить элемент.


getCount()

Количество раз, которое помощник вида Zend/Form/View/Helper/FormCollection должен отобразить элемент.

Тип  возвращаемого  значения:  integer


setTargetElement\($ElementOrFieldset)

Принимает или объекты Zend/Form/ElementInterface, Zend/Form/FieldsetInterface, или массив. После валидации элемента коллекции, будет происходить проверка каждого элемента в коллекции.


getTargetElement()

Возвращает указанный элемент, используемый в коллекции.

Тип  возвращаемого  значения:  ElementInterface | null


setAllowAdd($allowAdd)

Если «allowAdd» установлен в «TRUE» (по умолчанию), новые элементы добавляются в форму динамически. Будут также проверены и восстановлены.


allowAdd()

Возвращает значение – возможно ли динамическое добавление элементов в форму.

Тип  возвращаемого  значения:  boolean


setAllowRemove($allowRemove)

Если «allowRemove» установлен в «TRUE» (по умолчанию), то элементы формы добавляемые динамически можно будет еще и удалять.


allowRemove()

Проверяет, можно ли удалять динамически добавленные элементы.

Тип  возвращаемого  значения:  boolean


setShouldCreateTemplate($shouldCreateTemplate)

Если «shouldCreateTemplate» установлен в «TRUE» (по умолчанию «FALSE»), то элемент <span> будет создан помощником вида Zend/Form/View/Helper/FormCollection.  Этот элемент содержит один шаблон данных HTML5 атрибутов, занчанием которого является полноценный HTML, который копируется для создания элемента формы. Шаблон индексируется, используя значение «templatePlaceholder».

 

shouldCreateTemplate()

Нужно ли создавать шаблон.

Тип  возвращаемого  значения:  boolean

 

getTemplatePlaceholder()

Устанавливает заполнитель шаблона (по умолчанию «__index__»).


getTemplatePlaceholder()

Получает заполнитель шаблона.

Тип  возвращаемого  значения:  строка

 

Csrf

 

Zend\Form\Element\Csrf используется в паре с помощником вида Zend\Form\View\Helper\FormHidden для предотвращения атаки CSRF, тем самым проверяя, что данные, отправлены в форму тем же пользователем и с той же сессией, что создала форма, а не через подмену. Защита достигается путем добавления хэш элемента и проверкой его при отправке формы.

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «hidden».

use Zend\Form\Element;
use Zend\Form\Form;
 
$csrf = new Element\Csrf('csrf');
 
$form = new Form('my-form');
$form->add($csrf);

Через массив:

 use Zend\Form\Form;
 
 $form = new Form('my-form');
 $form->add(array(
     'type' => 'Zend\Form\Element\Csrf',
     'name' => 'csrf',
     'options' => array(
             'csrf_options' => array(
                     'timeout' => 600
             )
     )
 ));

Общедоступные методы

 

Следующие методы являются дополнением к унаследованным методам Zend\Form\Element.

 

getInputSpecification()

Возвращает спецификации «input filter», включая фильтр Zend\Filter\StringTrim и Zend\Validator\Csrf для проверки значения CSRF.

Тип  возвращаемого  значения:  массив


setCsrfValidatorOptions(array $options)

Задает параметры, используемые для валидации CSRF


getCsrfValidatorOptions()

Получает параметры, используемые для валидации CSRF

Тип  возвращаемого  значения:  массив

 

setCsrfValidator(CsrfValidator $validator)

Переназначает валидатор CSRF по умолчанию аданным.

 

getCsrfValidator()

Получить CSRF валидатор.

Тип  возвращаемого  значения:  CsrfValidator

 

File (Файл)

 

Zend\Form\Element\File представляет собой «form file input».  Может использоваться с помощником вида Zend\Form\View\Helper\FormFile.

 

Zend\Form\Element\File расширяет Zend\Form\Element.

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «file» и устанавливает «enctype» формы в «multipart/form»

use Zend\Form\Element;
use Zend\Form\Form;
 
$file = new Element\File('my-file');
 
$form = new Form('my-file');
$form->add($file);

Hidden (Скрытый)

 

Zend\Form\Element\Hidden представляет собой «hidden form input». Используется с помощником вида Zend\Form\View\Helper\FormHidden.

 

Zend\Form\Element\Hidden расширяет Zend\Form\Element.

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «hidden».

use Zend\Form\Element;
use Zend\Form\Form;
 
$hidden = new Element\Hidden('my-hidden');
$hidden->setValue('foo');
 
$form = new Form('my-form');
$form->add($hidden);

Используя массив:

 use Zend\Form\Form;
 
 $form = new Form('my-form');
 $form->add(array(
     'type' => 'Zend\Form\Element\Hidden',
     'name' => 'my-hidden',
     'attributes' => array(
             'value' => 'foo'
     )
 ));

Image (Изображение)

 

Zend\Form\Element\Image представляет собой «image button form input». Используется с помощником вида Zend\Form\View\Helper\FormImage.

 

Zend\Form\Element\Image расширяет Zend\Form\Element.

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «image».

use Zend\Form\Element;
use Zend\Form\Form;
 
$image = new Element\Image('my-image');
$image->setAttribute('src', 'http://my.image.url'); // Src attribute is required
 
$form = new Form('my-form');
$form->add($image);

MultiCheckbox

 

Zend\Form\Element\MultiCheckbox  используется совместно с Zend\Form\View\Helper\FormMultiCheckbox. Этот элемент добавляет валидатор InArray.

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «checkbox» для каждого checkbox’а.

    use Zend\Form\Element;
     use Zend\Form\Form;
 
     $multiCheckbox = new Element\MultiCheckbox('multi-checkbox');
     $multiCheckbox->setLabel('What do you like ?');
     $multiCheckbox->setValueOptions(array(
             array(
                     '0' => 'Apple',
                     '1' => 'Orange',
                     '2' => 'Lemon'
             )
     ));
 
     $form = new Form('my-form');
     $form->add($multiCheckbox);

Используя массив:

use Zend\Form\Form;
 
     $form = new Form('my-form');
     $form->add(array( 
             'type' => 'Zend\Form\Element\MultiCheckbox',
             'name' => 'multi-checkbox'
             'options' => array(
                     'label' => 'What do you like ?',
                     'value_options' => array(
                             '0' => 'Apple',
                             '1' => 'Orange',
                             '2' => 'Lemon',
                     ),
             )
     ));

Общедоступные методы

 

Следующие методы в дополнение к унаследованным методам Zend\Form\Element\Checkbox .

 

setOptions(array $options)

Задать опции для элементов Checkbox. Допустимые значения: «value_options». Вызывает метод «setValueOptions».


setValueOptions(array $options)

Установить значения опций для каждого checkbox в multi-checkbox. Массив должен содержать «key => value» для каждого checkbox.


getValueOptions()

Получить значения опций.

 

Password (Пароль)

 

Zend\Form\Element\Password представляет собой «password form input». Используется с помощником вида Zend\Form\View\Helper\FormPassword.

 

Zend\Form\Element\Password расширяет Zend\Form\Element.

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «password»

use Zend\Form\Element;
use Zend\Form\Form;
 
$password = new Element\Password('my-password');
$password->setLabel('Enter your password');
 
$form = new Form('my-form');
$form->add($password);

Radio (Радио-кнопка)

 

Zend\Form\Element\Radio используется в паре с Zend\Form\View\Helper\FormRadio. Добавляет валидатор InArray.

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «radio»

  use Zend\Form\Element;
     use Zend\Form\Form;
 
     $radio = new Element\Radio('gender');
     $radio->setLabel('What is your gender ?');
     $radio->setValueOptions(array(
             array(
                     '0' => 'Female',
                     '1' => 'Male',
             )
     ));
 
     $form = new Form('my-form');
     $form->add($radio);

Используя массив:

 use Zend\Form\Form;
 
     $form = new Form('my-form');
     $form->add(array( 
             'type' => 'Zend\Form\Element\Radio',
             'name' => 'gender'
             'options' => array(
                     'label' => 'What is your gender ?',
                     'value_options' => array(
                             '0' => 'Female',
                             '1' => 'Male',
                     ),
             )
     ));

Общедоступные методы

 

Доступны те же методы, что и для Zend\Form\Element\MultiCheckbox.

 

Select

 

Zend\Form\Element\Select используется в паре с помощником вида Zend\Form\View\Helper\FormSelect. Может использоваться как элемент «multi-select» , добавляет несколько HTML атрибутов к элементу.

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «select».

  use Zend\Form\Element;
     use Zend\Form\Form;
 
     $select = new Element\Select('language');
     $select->setLabel('Which is your mother tongue?');
     $select->setValueOptions(array(
             '0' => 'French',
             '1' => 'English',
             '2' => 'Japanese',
             '3' => 'Chinese',
     ));
 
     $form = new Form('language');
     $form->add($select);

Используя массив:

 use Zend\Form\Form;
 
     $form = new Form('my-form');
     $form->add(array( 
             'type' => 'Zend\Form\Element\Select',
             'name' => 'language'
             'options' => array(
                     'label' => 'Which is your mother tongue?',
                     'value_options' => array(
                             '0' => 'French',
                             '1' => 'English',
                             '2' => 'Japanese',
                             '3' => 'Chinese',
                     ),
             )
     ));

Так же можно добавить «empty option» (опцию, не содержащую значения), используя «empty_option» :

 use Zend\Form\Form;
 
     $form = new Form('my-form');
     $form->add(array( 
             'type' => 'Zend\Form\Element\Select',
             'name' => 'language'
             'options' => array(
                     'label' => 'Which is your mother tongue?',
                     'empty_option' => 'Please choose your language',
                     'value_options' => array(
                             '0' => 'French',
                             '1' => 'English',
                             '2' => 'Japanese',
                             '3' => 'Chinese',
                     ),
             )
     ));

Так же поддерживаются группы опций. Нужно просто добавить ключ «options» в значение «options»:

  use Zend\Form\Element;
     use Zend\Form\Form;
 
     $select = new Element\Select('language');
     $select->setLabel('Which is your mother tongue?');
     $select->setValueOptions(array(
     'european' => array(
         'label' => 'European languages',
         'options' => array(
             '0' => 'French',
             '1' => 'Italian',
         ),
     ),
     'asian' => array(
         'label' => 'Asian languages',
         'options' => array(
             '2' => 'Japanese',
             '3' => 'Chinese',
         ),
     ),
     ));
 
     $form = new Form('language');
     $form->add($select);

Общедоступные методы

 

Эти методы являются дополнением к унаследованным span style=span style=span style=p/span2методам Zend\Form\Element .

 

Доступны те же методы, что  и для «Checkbox»

 

 

Submit (Отправить)

 

Zend\Form\Element\Submit представляет собой «submit button form input». Может использоваться с помощником вида Zend\Form\View\Helper\FormSubmit.

 

Zend\Form\Element\Submit расширяет Zend\Form\Element.

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «submit».

use Zend\Form\Element;
use Zend\Form\Form;
 
$submit = new Element\Submit('my-submit');
$submit->setValue('Submit Form');
 
$form = new Form('my-form');
$form->add($submit);

Text (Текст)

 

Zend\Form\Element\Text представляет собой «text form input». Используется с помощником вида Zend\Form\View\Helper\Form.

 

Zend\Form\Element\Text расширяет Zend\Form\Element.

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «text».

 

Textarea

 

Zend\Form\Element\Textarea представляет собой «textarea form input». Используется с помощником вмда Zend\Form\View\Helper\FormTextarea.

 

Этот элемент автоматически добавляет атрибут «type» со значением «textarea».

 

 

Zend\Form\Element\Textarea расширяет Zend\Form\Element.

 

Базовое использование:

use Zend\Form\Element;
use Zend\Form\Form;
 
$textarea = new Element\Textarea('my-textarea');
$textarea->setLabel('Enter a description');
 
$form = new Form('my-form');
$form->add($textarea);

HTML5 элементы

 

Color (Цвет)

 

Zend\Form\Element\Color используется с помощником вида Zend\Form\View\Helper\FormColor.  Этот элемент добавляет фильтры и «Regex validator».

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «color».

use Zend\Form\Element;
use Zend\Form\Form;
 
$color = new Element\Color('color');
$color->setLabel('Background color');
 
$form = new Form('my-form');
$form->add($color);

Используя массив

use Zend\Form\Form;
 
 $form = new Form('my-form');
 $form->add(array(
     'type' => 'Zend\Form\Element\Color',
     'name' => 'color',
     'options' => array(
             'label' => 'Background color'
     )
 ));

Общедоступные методы

 

Эти методы являются дополнением к унаследованным методам Zend\Form\Element.

 

getInputSpecification()

Возвращает спецификации «inputfilter», включая фильтры Zend\Filter\StringTrimи Zend\Filter\StringToLower, и валдатор Zend\Validator\Regex для проверки формата RGB.

 

Тип  возвращаемого  значения:  массив

 

Date (Дата)

 

Zend\Form\Element\Date используется с помощником вида Zend\Form\View\Helper\FormDateдля HTML5 « input» с типом «date».  Добавляет фильтры для проверки даты.

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «date».

use Zend\Form\Element;
use Zend\Form\Form;
 
$date = new Element\Date('appointment-date');
$date
    ->setLabel('Appointment Date')
    ->setAttributes(array(
        'min'  => '2012-01-01',
        'max'  => '2020-01-01',
        'step' => '1', // days; default step interval is 1 day
    ));
 
$form = new Form('my-form');
$form->add($date);

Используя массив:

use Zend\Form\Form;
 
 $form = new Form('my-form');
 $form->add(array(
     'type' => 'Zend\Form\Element\Date',
     'name' => 'appointment-date',
     'options' => array(
             'label' => 'Appointment Date'
     ),
     'attributes' => array(
             'min' => '2012-01-01',
             'max' => '2020-01-01',
             'step' => '1', // days; default step interval is 1 day
     )
 ));

Важно: для атрибутов  «min» (минимальное значение), «max» (максимальное значение), «step» (шаг) должны быть установлены приоритеты при вызове Zend\Form::prepare(). Иначе будут использоваться настройки по умолчанию.

 

Общедоступные методы

 

Следующие методы в дополнение к унаследованным методам Zend\Form\Element\\DateTime.

 

getInputSpecification()

Возвращает спецификации «input filter», включая фильтр Zend\Filter\StringTrim и специализированные валидаторы для проверки значений, указанных в атрибутах min, max, step.

Разница с Zend\Form\Element\DateTimeв том, что валидатор  Zend\Validator\DateStep принимает шаг – интервал дней. По умолчанию – 1.

Тип  возвращаемого  значения:  массив

 

DateTime (Время)

 

Zend\Form\Element\DateTime используется с помощником вида Zend\Form\View\Helper\FormDateTimeв HTML5 « input» с типом «datetime».

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «datetime».

use Zend\Form\Element;
use Zend\Form\Form;
 
$dateTime = new Element\DateTime('appointment-date-time');
$dateTime
    ->setLabel('Appointment Date/Time')
    ->setAttributes(array(
        'min'  => '2010-01-01T00:00:00Z',
        'max'  => '2020-01-01T00:00:00Z',
        'step' => '1', // minutes; default step interval is 1 min
    ));
 
$form = new Form('my-form');
$form->add($dateTime);

Используя массив:

 use Zend\Form\Form;
 
 $form = new Form('my-form');
 $form->add(array(
     'type' => 'Zend\Form\Element\DateTime',
     'name' => 'appointement-date-time',
     'options' => array(
             'label' => 'Appointment Date/Time'
     ),
     'attributes' => array(
             'min' => '2010-01-01T00:00:00Z',
             'max' => '2020-01-01T00:00:00Z',
             'step' => '1', // minutes; default step interval is 1 mint
     )
 ));

Важно: для атрибутов  «min» (минимальное значение), «max» (максимальное значение), «step» (шаг) должны быть установлены приоритеты при вызове Zend\Form::prepare(). Иначе будут использоваться настройки по умолчанию

 

Общедоступные методы

 

Эти методы являются дополнением к унаследованным методам Zend\Form\Element.

 

getInputSpecification()

Возвращает «input filter» спецификации, включая фильтр Zend\Filter\StringTrim и валидаторы, использующие значения атрибутов «min», «max», «step».

 

Если указан атрибут «min», то будет добавлен валидатор Zend\Validator\GreaterThan, что б удостовериться, что введенная дата больше, чем минимально возможная.

 

Если указан атрибут «max», то будет добавлен валидатор Zend\Validator\LessThan, что б удостовериться, что введенная дата меньше , чем максимально возможная.

 

Если указан атрибут «step», и имеет значение «any», то проверка на шаг будет пропущена. Иначе, будет использоваться валидатор Zend\Validator\DateStep. По умолчанию шаг – одна минута.

 

Тип  возвращаемого  значения:  массив

 


DateTimeLocal (Локальное время)

 

Zend\Form\Element\DateTimeLocal используется в паре с помощником видов Zend\Form\View\Helper\FormDateTimeLocal для HTML5 полей с типом «datetime-local».

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «datetime-local».

use Zend\Form\Element;
use Zend\Form\Form;
 
$dateTimeLocal = new Element\DateTimeLocal('appointment-date-time');
$dateTimeLocal
    ->setLabel('Appointment Date')
    ->setAttributes(array(
        'min'  => '2010-01-01T00:00:00',
        'max'  => '2020-01-01T00:00:00',
        'step' => '1', // minutes; default step interval is 1 min
    ));
 
$form = new Form('my-form');
$form->add($dateTimeLocal);

Используя массив:

use Zend\Form\Form;
 
 $form = new Form('my-form');
 $form->add(array(
     'type' => 'Zend\Form\Element\DateTimeLocal',
     'name' => 'appointment-date-time',
     'options' => array(
             'label' => 'Appointment Date'
     ),
     'attributes' => array(
             'min' => '2010-01-01T00:00:00',
             'max' => '2020-01-01T00:00:00',
             'step' => '1', // minutes; default step interval is 1 min
     )
 ));

Важно: для атрибутов  «min» (минимальное значение), «max» (максимальное значение), «step» (шаг) должны быть установлены приоритеты при вызове Zend\Form::prepare(). Иначе будут использоваться настройки по умолчанию

 

 

Общедоступные методы

 

Те же что и в DateTime

 

 

Email (Электронная почта)

 

Zend\Form\Element\Email используется в паре с помощником вида end\Form\View\Helper\FormEmailдля HTML5 полей с типом «email». Добавляет фильтры и валидаторы, для проверки введенного Email.

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «email».

use Zend\Form\Element;
use Zend\Form\Form;
 
$form = new Form('my-form');
 
// Single email address
$email = new Element\Email('email');
$email->setLabel('Email Address')
$form->add($email);
 
// Comma separated list of emails
$emails = new Element\Email('emails');
$emails
    ->setLabel('Email Addresses')
    ->setAttribute('multiple', true);
$form->add($emails);

Используя массив:

use Zend\Form\Form;
 
 $form = new Form('my-form');
 $form->add(array(
     'type' => 'Zend\Form\Element\Email',
     'name' => 'email',
     'options' => array(
             'label' => 'Email Address'
     ),
 ));
 
 $form->add(array(
     'type' => 'Zend\Form\Element\Email',
     'name' => 'emails',
     'options' => array(
             'label' => 'Email Addresses'
     ),
     'attributes' => array(
             'multiple' => true
     )
 ));

Общедоступные методы

Эти методы являются дополнением к унаследованным метоnbsp;,span style=span style= Element\DateTimeLocalcolor:#000088дам Zend\Form\Element.

 

getInputSpecification()

Возвращает спецификацию «input filter», включая фильтр Zend\Filter\StringTrim и валидаторы.

 

Если множественные (multiple) атрибуты не установлены или отключены, то Zend\Validator\Regex будет прикреплен только к одному email.

 

Если множественные (multiple) атрибуты включены, то будет добавлен валидатор Zend\Validator\Explode, что б убедиться, что введнные адреса разделены запятыми, после чего будет осуществлена проверка каждого email.

 

Тип  возвращаемого  значения:  массив

 

Month (Месяц)

 

Zend\Form\Element\Month используется с помощником вида Zend\Form\View\Helper\FormMonthдля HTML5 полей с типом «month». Добавляет фильтры и валидаторы.

 

Базовое использование

 

Этот элемент автоматически добавляет ат Element\Submit/span/strongstep/span=рибут «type» со значением «month».

use Zend\Form\Element;
use Zend\Form\Form;
 
$month = new Element\Month('month');
$month
    ->setLabel('Month')
    ->setAttributes(array(
        'min'  => '2012-01',
        'max'  => '2020-01',
        'step' => '1', // months; default step interval is 1 month
    ));
 
$form = new Form('my-form');
$form->add($month);

Используя массив:

use Zend\Form\Form;
 
 $form = new Form('my-form');
 $form->add(array(
     'type' => 'Zend\Form\Element\Month',
     'name' => 'month',
     'options' => array(
             'label' => 'Month'
     ),
     'attributes' => array(
             'min' => '2012-12',
             'max' => '2020-01',
             'step' => '1', // months; default step interval is 1 month
     )
 ));

Важно: для атрибутов  «min» (минимальное значение), «max» (максимальное значение), «step» (шаг) должны быть установлены приоритеты при вызове Zend\Form::prepare(). Иначе будут использоваться настройки по умолчанию и применятся неправильные правила для проверки.

 

Общедоступные методы

 

Как и в DateTime.

 

Атрибут «step» -  по умолчанию 1 месяц.

 

Number (Число)

 

Zend\Form\Element\Number используется с помощником вида Zend\Form\View\Helper\FormNumber. Добавляет фильтры и валидаторы.

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «number».

use Zend\Form\Element;
use Zend\Form\Form;
 
$number = new Element\Number('quantity');
$number
    ->setLabel('Quantity')
    ->setAttributes(array(
        'min'  => '0',
        'max'  => '10',
        'step' => '1', // default step interval is 1
    ));
 
$form = new Form('my-form');
$form->add($number);

Используя массив:

use Zend\Form\Form;
 
 $form = new Form('my-form');
 $form->add(array(
     'type' => 'Zend\Form\Element\Number',
     'name' => 'quantity',
     'options' => array(
             'label' => 'Quantity'
     ),
     'attributes' => array(
             'min' => '0',
             'max' => '10',
             'step' => '1', // default step interval is 1
     )
 ));

Важно: для атрибутов  «min» (минимальное значение), «max» (максимальное значение), «step» (шаг) должны быть установлены приоритеты при вызове Zend\Form::prepare(). Иначе будут использоваться настройки по умолчанию и применяются неправильные правила для проверки.

 

Общедоступные методы

 

getInputSpecification()

Возвращает «input filter» спецификации, включая фильтр Zend\Filter\StringTrim и валидаторы, использующие значения атрибутов «min», «max», «step».

 

Если указан атрибут «min», то будет добавлен валидатор Zend\Validator\GreaterThan, что б удостовериться, что введенное число больше, чем минимально возможная.

 

Если указан атрибут «max», то будет добавлен валидатор Zend\Validator\LessThan, что б удостовериться, что введенное число меньше , чем максимально возможная.

 

Если указан атрибут «step», и имеет значение «any», то проверка на шаг будет пропущена. Иначе, будет использоваться валидатор Zend\Validator\DateStep. По умолчанию шаг – единица.

 

Тип  возвращаемого  значения:  массив

 

Range (Диапазон)

 

Zend\Form\Element\Range используется с помощником вида Zend\Form\View\Helper\FormRange. Добавляет фильтры и валидаторы.

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «range».

use Zend\Form\Element;
use Zend\Form\Form;
 
$range = new Element\Range('range');
$range
    ->setLabel('Minimum and Maximum Amount')
    ->setAttributes(array(
        'min'  => '0',   // default minimum is 0
        'max'  => '100', // default maximum is 100
        'step' => '1',   // default interval is 1
    ));
 
$form = new Form('my-form');
$form->add($range);

Используя массив:

use Zend\Form\Form;
 
 $form = new Form('my-form');
 $form->add(array(
     'type' => 'Zend\Form\Element\Range',
     'name' => 'range',
     'options' => array(
             'label' => 'Minimum and Maximum Amount'
     ),
     'attributes' => array(
             'min' => 0, // default minimum is 0
             'max' => 100, // default maximum is 100
             'step' => 1 // default interval is 1
     )
 ));

Важно: для атрибутов  «min» (минимальное значение), «max» (максимальное значение), «step» (шаг) должны быть установлены приоритеты при вызове Zend\Form::prepare(). Иначе будут использоваться настройки по умолчанию и применяются неправильные правила для проверки.

 

 

Общедоступные методы

 

Те же что и в Number.

 

Time (Время)

 

Zend\Form\Element\Time используется с помощником вида   Zend\Form\View\Helper\FormTime. Добавляет фильтры и валидаторы.

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «time».

use Zend\Form\Element;
use Zend\Form\Form;
 
$time = new Element\Month('time');
$time
    ->setLabel('Time')
    ->setAttributes(array(
        'min'  => '00:00:00',
        'max'  => '23:59:59',
        'step' => '60', // seconds; default step interval is 60 seconds
    ));
 
$form = new Form('my-form');
$form->add($time);

Используя массив:

use Zend\Form\Form;
 
 $form = new Form('my-form');
 $form->add(array(
     'type' => 'Zend\Form\Element\Month',
     'name' => 'time',
     'options'=> array(
             'label' => 'Time'
     ),
     'attributes' => array(
             'min' => '00:00:00',
             'max' => '23:59:59',
             'step' => '60', // seconds; default step interval is 60 seconds
     )
 ));

Важно: для атрибутов  «min» (минимальное значение), «max» (максимальное значение), «step» (шаг) должны быть установлены приоритеты при вызове Zend\Form::prepare(). Иначе будут использоваться настройки по умолчанию и применятся неправильные правила для проверки.

 

 

Методы как и в DateTime.

Минимальный шаг по умолчанию – 60 секунд.

 

Url

 

Zend\Form\Element\Url используется с помощником вида   Zend\Form\View\Helper\FormUrl. Добавляет фильтры и валидаторы.

 

Базовое использование

 

Этот элемент автоматически добавляет атрибут «type» со значением «url».

 

use Zend\Form\Element;
use Zend\Form\Form;
 
$url = new Element\Url('webpage-url');
$url->setLabel('Webpage URL');
 
$form = new Form('my-form');
$form->add($url);

Используя массив:

use Zend\Form\Form;
 
 $form = new Form('my-form');
 $form->add(array(
     'type' => 'Zend\Form\Element\Url',
     'name' => 'webpage-url',
     'options => array(
             'label' => 'Webpage URL'
     )
 ));

Общедоступные методы

 

Эти методы являются дополнением к унаследованным методам Zend\Form\Element.

 

getInputSpecification()

Возвращает спецификации «input filter», включая фильтр Zend\Filter\StringTrim и валидатор Zend\Validator\Uri.

 

Тип  возвращаемого  значения: массив

 

Week (Неделя)

 

Zend\Form\Element\Week используется с помощником вида   Zend\Form\View\Helper\FormWeek. Добавляет фильтры и валидаторы.

 

Базовое использование

Этот элемент автоматически добавляет атрибут «type» со значением «week».

use Zend\Form\Element;
use Zend\Form\Form;
 
$week = new Element\Week('week');
$week
    ->setLabel('Week')
    ->setAttributes(array(
        'min'  => '2012-W01',
        'max'  => '2020-W01',
        'step' => '1', // weeks; default step interval is 1 week
    ));
 
$form = new Form('my-form');
$form->add($week);

Используя массив:

use Zend\Form\Form;
 
 $form = new Form('my-form');
 $form->add(array(
     'type' => 'Zend\Form\Element\Week',
     'name' => 'week',
     'options' => array(
             'label' => 'Week'
     ),
     'attributes' => array(
             'min' => '2012-W01',
             'max' => '2020-W01',
             'step' => '1', // weeks; default step interval is 1 week
     )
 ));

Важно: для атрибутов  «min» (минимальное значение), «max» (максимальное значение), «step» (шаг) должны быть установлены приоритеты при вызове Zend\Form::prepare(). Иначе будут использоваться настройки по умолчанию и применятся неправильные правила для проверки.

 

 

Методы как и у DateTime.

 

Разница с Zend\Form\Element\DateTime заключается в использовании валидатора Zend\Validator\DateStep. Шаг по умолчанию -  1 неделя.


Автор статьи: DuB