Компоненты библиотеки/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);
}