Компоненты библиотеки/BA_FieldChecker.md


Что такое BA_FieldChecker?

Класс проверяет поля массива на допустимые значения. Удобен для проверки скрытых полей формы обратной связи, вроде идентификатора сессии или “галочки” “Я не робот”.



Подключение

include(__DIR__.'/classes/BA_FieldChecker.php');

use classes\BA_FieldChecker;

$fieldChecker = new BA_FieldChecker();

В include передаётся путь до файла.

В use указывается пространство имён, в котором хранятся классы. Изначально в данной библиотеке классы хранятся в каталоге “classes” и относятся к пространству имён “classes”.



Методы

addRequiredValue

Вызов:

$fieldChecker->addRequiredValue($key, $value, $append);

Задаёт разрешённое значение $value для поля $key.

Если (необязательное) $append == true - значение $value добавляется в список, если $append == false - значение заменяет собой все остальные. По умолчанию - true.


setRequiredField

Вызов:

$fieldChecker->setRequiredField($key, $values);

Задает разрешённые значения для поля $key. Если $values не задан - для поля станет подходящим любое не пустое и не нулевое значение.


deleteRequiredField

Вызов:

$fieldChecker->deleteRequiredField($key);

Удаляет поле $key из списка полей, для которых устанавливаются допустимые значения.


clearFields

Вызов:

$fieldChecker->deleteRequiredField();

Очищает список полей для которых установлены допустимые значения


getFields

Без параметров

Возвращает массив полей для которых установлены допустимые значения


checkData

Вызов:

$fieldChecker->checkData($data);

Метод последовательно перебирает переданные в неё поля массива $data и проверяет, соответствует ли значение поля одному из разрешенных. Для одного поля может быть задано несколько разрешенных значений.

Метод checkData возвращает следующие результаты:

  • Если не заданы массив со значениями полей или непосредственно массив с данными - возвращается false, т.к. - проверять нечего.
  • Если в переданных данных отсутствует поле, название которого присутствует в списке fields - функция возвращает true
  • Если требуемое поле присутствует в переданном массиве с данными, но его значение не совпало ни с одним из требуемых значений для этого поля (задаются методами addRequiredValue и setRequiredField) - функция возвращает false


Пример использования

$fieldChecker = new BA_FieldChecker();

$fieldChecker
	->addRequiredValue('secret', '')
	->addRequiredValue('notRobot', '1');

if ($fieldChecker->checkData($post)) {
	// здесь какой-то код
}