Компоненты библиотеки/BA_RequestDataFilter.md
Что такое BA_RequestDataFilter?
Простой класс, позволяющий очистить данные полей от тегов, спецсимволов и начальных пробелов.
Содержит статичные методы, не требующие создания экземпляра класса.
Подключение
include(__DIR__.'/classes/BA_RequestDataFilter.php');
use classes\BA_RequestDataFilter;
В include передаётся путь до файла.
В use указывается пространство имён, в котором хранятся классы. Изначально в данной библиотеке классы хранятся в каталоге “classes” и относятся к пространству имён “classes”.
Методы
cleanString
cleanString($value)
Статичный метод.
Принимает в качестве любой тип данных. Если в метод передана строка - она возвращается очищенная от html-тегов, специальных символов, а так-же пробелов в начале и конце.
Содержит в себе вызов функций:
trim(htmlspecialchars(strip_tags($value)));
Если параметром передана не строка - значение параметра возвращается без изменений.
Пример
$name = BA_RequestDataFilter::cleanString($_POST['name']);
filter
filter(array $data, array $fields = [])
Статичный метод.
Очищает поля массива $data от от тегов, спецсимволов и начальных пробелов. Возвращает отфильтрованный массив.
Если требуется очистить только определённые поля, их нужно перечислить в массиве $fields. Если поля, перечисленного в $fields не существует в массиве $data, оно будет создано со значением пустой строки.
Примеры
Фильтр всех значений массива $_POST:
$post = BA_RequestDataFilter::filter($_POST);
Фильтр значений имени, телефона и адреса массива $_POST:
$post = BA_RequestDataFilter::filter($_POST, ['name', 'phone', 'adress']);
Если какого-то из перечисленных полей нет в массиве $_POST, оно будет добавлено в возвращаемый массив.
initValue
initValue(array $data, $key )
Статичный метод
Проверяет, есть-ли в массиве $data элемент $key. Если есть, возвращает его значение, если нет - пустую строку.
Позволяет инициализировать значение элемента при его отсутствии.
Примеры использования
$data[$key] = BA_RequestDataFilter::initValue($data, $key);
Таким образом, если в массиве $data не было элемента $key он появится, если элемент уже был, ему будет присвоено его-же значение. Подобная инициализация лучше всего подходит для циклов, где перебираются названия полей (ключи массива), часть из которых в массиве может отсутствовать:
foreach ($requiredFields as $field) {
$data[$field] = BA_RequestDataFilter::initValue($data, $field);
}