Компоненты библиотеки
Что такое 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)) {
// здесь какой-то код
}