Form::isSubmit()

Метод isSubmit() использутся для проверки отправки данных с формы.

Например:
$form = new Form();
$form->addField('title', 'vacancy_title');
$form->addButton('submit');
if ($form->isSubmit()) {
  redirect("...");
}
echo (string)$form;

Метод isSubmit() возвращает булево значение.

Метод isSubmit() возвращает true при выполнении всех следующих условий:
1. Если установлено имя формы, то нужно проверять $_REQUEST['_form_name_'] значение на совпадение с именем формы.
2. Если в форме есть хоть одна кнопка, то значение $_REQUEST['action'] должно соответствовать одному из значений.
3. Значения всех полей есть в $_REQUEST.

# Требования

+ Метод должен вернуть false если не было сабмита.
+ Имя формы установлено, но в $_REQUEST нет имени формы.
+ В форме есть кнопка, но значения кнопки нет в $_REQUEST.
+ В форме есть поля, но нет значения в $_REQUEST.
+ В форме есть название, и значение есть в $_REQUEST.
+ В форме есть поле, и значение полей есть в $_REQUEST.
+ В форме есть кнопка, и значение кнопки есть в $_REQUEST.
+ Общий success тест для isSubmit

# Требование: Метод должен вернуть false если не было сабмита.

Код:
unset($_REQUEST);
$form = new Form('vacancy_add');
$form->addField('title', 'vacancy_title');
$form->addButton('submit');

$form->isSubmit();

Результатом последней команды будет: 
false

# Имя формы установлено, но в $_REQUEST нет имени формы.

Код:
$_REQUEST = [
    'vacancy_title' => 'New title',
    'action' => 'submit',
];
$form = new Form('vacancy_add');
$form->addField('title', 'vacancy_title');
$form->addButton('submit');

$form->isSubmit();

Результатом последней команды будет: 
false

# В форме есть кнопка, но значения кнопки нет в $_REQUEST.

Код:
$_REQUEST = [
    'vacancy_title' => 'New title',
];
$form = new Form();
$form->addField('title', 'vacancy_title');
$form->addButton('submit');

$form->isSubmit();

Результатом последней команды будет: 
false


# В форме есть поля, но нет значения в $_REQUEST.

Код:
$_REQUEST = [
    'action' => 'submit',
];
$form = new Form();
$form->addField('title', 'vacancy_title');
$form->addButton('submit');

$form->isSubmit();

Результатом последней команды будет: 
false

# В форме есть название, и значение есть в $_REQUEST.

Код:
$_REQUEST = [
    '_form_name_' => 'doc_add',
];
$form = new Form('doc_add');
$form->isSubmit();

Результатом последней команды будет: 
true

# В форме есть поле, и значение полей есть в $_REQUEST.

Код:
$_REQUEST = [
    'doc_title' => 'New doc title.',
];
$form = new Form();
$form->addField('title', 'doc_title');
$form->isSubmit();

Результатом последней команды будет: 
true


# В форме есть кнопка, и значение кнопки есть в $_REQUEST.

Код:
$_REQUEST = [
    'action' => 'submit',
];
$form = new Form();
$form->addButton('submit');
$form->isSubmit();

Результатом последней команды будет: 
true


# Общий success тест для isSubmit
$_REQUEST = [
    '_form_name_' => 'doc_add',
    'doc_title' => 'New doc title.',
    'action' => 'submit',
];
$form = new Form('doc_add');
$form->addField('title', 'doc_title');
$form->addButton('submit');
$form->isSubmit();

Результатом последней команды будет: 
true
