Download the PHP package fi1a/validation without Composer
On this page you can find all versions of the php package fi1a/validation. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download fi1a/validation
More information about fi1a/validation
Files in fi1a/validation
Package validation
Short Description PHP валидация (проверка) значений формы и данных
License MIT
Homepage https://github.com/fi1a/validation
Informations about the package validation
PHP валидация (проверка) значений формы и данных
Валидация означает проверку данных, заполняемых пользователем. Пакет предоставляет возможность организовать проверку на стороне сервера после отправки данных формы.
Возможности
- Проверка (валидация) данных массива и отдельного значения;
- Проверка (валидация) значений формы и загружаемых файлов;
- Поддержка набора правил со сценариями;
- Возможность изменить названия полей;
- Возможность изменить текст ошибки;
- Возможность расширить пользовательскими правилами проверки;
- Сценарии и наборы правил;
- Проверка публичных полей объекта.
Установка
Установить этот пакет можно как зависимость, используя Composer.
Проверка данных полей формы
Для проверки данных полей формы нужно использовать метод класса валидатора . После создания объекта валидации необходимо вызвать метод для проверки переданных значений. При вызове возвращается объект результата проверки .
Пример:
Проверка одного поля
Для проверки одного поля нужно использовать один из классов цепочки правил. Цепочки правил реализует "Fluent interface" для объявления используемых правил.
Цепочка "значение должно удовлетворять всем правилам" ():
Цепочка "значение должно удовлетворять одному из правил" ():
Пример совместного использования цепочек правил. Значение может быть числом большим 10 или строкой с минимальной длиной 2:
Проверка объекта
Вместо массива значений можно передать объект для проверки значений свойств объекта (осуществляется проверка только публичных свойств объекта):
Сообщения об ошибках
Сообщения об ошибках можно задать при создании объекта валидации с помощью метода , передав в него массив с сообщениями, либо позже методами или объекта валидации. Также сообщения можно определить в наборе правил (возвращаемый массив метода ).
Заголовки полей
Заголовки полей можно задать при создании объекта валидации с помощью метода , передав в него заголовки, либо позже методами или объекта валидации. Также заголовки можно определить в наборе правил (возвращаемый массив метода ).
Ошибки
Сообщения об ошибках представлены коллекцией , которую можно получить с помощью метода класса результата проверки .
Доступные методы в коллекции ошибок :
-
- возвращает первые ошибки для поля;
-
- возвращает все ошибки для конкретного поля;
-
- возвращает первую ошибку для конкретного поля;
-
- возвращает все ошибки для конкретного правила;
-
- возвращает массив с сообщениями об ошибках (аргумент $flat определяет в каком виде будет сформирован массив с сообщениями об ошибках).
Также доступны все методы коллекции .
Затронутые значения
Затронутые значения представлены коллекцией , которую можно получить с помощью метода класса результата проверки .
Доступные методы в коллекции :
-
- значения не прошедшие проверку;
-
- значения успешно прошедшие проверку.
Также доступны все методы коллекции .
Сценарии
Сценарии предназначены для определения какие правила применять к текущему состоянию. Например: при сценарии создания пароль обязателен для заполнения, а при сценарии обновления нет. Это можно определить используя сценарии.
Класс задает к какому сценарию относится цепочка правил.
| Аргумент | Описание |
|---|---|
| string $fieldName | Имя поля для которого предназначена цепочка правил |
| ?ChainInterface $chain | Цепочка правил |
| string ...$scenario | Сценарии для которых применяется цепочка правил |
Текущий используемый сценарий передается пятым аргументом в метод make класса Fi1a\Validation\Validator.
Набор правил
Набор правил представляет собой класс реализующий интерфейс .
Используя класс набора правил можно определить:
- правила для полей;
- сценарий к которому относится правило;
- заголовки полей;
- сообщения об ошибках.
Пример набора правил:
Использование набора правил по сценарию :
Значение присутствует для валидации (проверки)
По умолчанию большинство правил при валидации (проверке) возвращают true, если значение не присутсвует (за исключением require()).
Класс, реализующий интерфейс Fi1a\Validation\Presence\WhenPresenceInterface, определяет по какому критерию будет происходить
проверка на присутсвие значения.
Доступны следующие классы:
Fi1a\Validation\Presence\WhenPresence- определяет присутствие значения по наличию ключа;Fi1a\Validation\Presence\WhenNotValue- определяет по переданному значению присутсвует значение или нет (если равно считается, что не присутсвует);Fi1a\Validation\Presence\WhenNotNull- определяет по значению null присутсвует значение или нет (если null считается, что не присутсвует);Fi1a\Validation\Presence\WhenNotIn- определяет по переданным значениям присутсвует значение или нет (если входит в значения считается, что не присутсвует);Fi1a\Validation\Presence\WhenComposite- используется как составной из других классов проверки присутсвия значения.
По умолчанию используется класс Fi1a\Validation\Presence\WhenPresence. Но вы можете передать нужный вам.
Объект, определяющий присутсвие значения, можно установить сразу для всех правил используя метод setPresence:
Правила
alphaNumeric(?WhenPresenceInterface $presence = null)
Значение должно быть буквенно-цифровым
alpha(?WhenPresenceInterface $presence = null)
Является ли значение только буквенным(без чисел)
array(?WhenPresenceInterface $presence = null)
Является ли значение массивом
betweenCount(int $min, int $max, ?WhenPresenceInterface $presence = null)
Проверка на минимальное и максимальное количество элементов в массиве
betweenDate(string $minDate, string $maxDate, ?string $format = null, ?WhenPresenceInterface $presence = null)
Проверка на максимальную и минимальную дату
betweenLength(int $min, int $max, ?WhenPresenceInterface $presence = null)
Проверка на максимальную и минимальную длину строки
between($min, $max, ?WhenPresenceInterface $presence = null)
Проверка на максимальное и мимальное значение
boolean(?WhenPresenceInterface $presence = null)
Является ли значение логическим
date(string $format = null, ?WhenPresenceInterface $presence = null)
Проверка на формат даты
email(?WhenPresenceInterface $presence = null)
Является ли значение email адресом
equalDate(string $equalDate, ?string $format = null, ?WhenPresenceInterface $presence = null)
Проверяет дату на равенство
equal(float $equal, ?WhenPresenceInterface $presence = null)
Проверяет число на равенство
fileSize(string $min, string $max, ?WhenPresenceInterface $presence = null)
Размер загруженного файла.
Указатели на размер:
- B - байты;
- KB, K - килобайты;
- MB, M - мегабайты;
- GB, G - гигабайты;
- TB, T - террабайты;
- PB, P - петабайты.
generic(array $rules, array $messages = [], array $titles = [], ?WhenPresenceInterface $presence = null)
Вложенные правила
url(?WhenPresenceInterface $presence = null)
Валидация (проверка) url адреса
in($presence, ...$in)
Допустимые значения (не строгая проверка значения)
integer(?WhenPresenceInterface $presence = null)
Является ли значение целым числом
json(?WhenPresenceInterface $presence = null)
Является ли значение json-строкой
maxCount(int $max, ?WhenPresenceInterface $presence = null)
Проверка на максимальное количество элементов в массиве
maxDate(string $maxDate, ?string $format = null, ?WhenPresenceInterface $presence = null)
Проверка на максимальную дату
maxLength(int $max, ?WhenPresenceInterface $presence = null)
Проверка на максимальную длину строки
max($max, ?WhenPresenceInterface $presence = null)
Проверка на максимальное значение
mime(WhenPresenceInterface|string $presence, string ...$extensions)
Тип загруженного файла
`
minCount(int $min, ?WhenPresenceInterface $presence = null)
Проверка на минимальное количество элементов в массиве
minDate(string $minDate, ?string $format = null, ?WhenPresenceInterface $presence = null)
Проверка на минимальную дату
minLength(int $min, ?WhenPresenceInterface $presence = null)
Проверка на минимальную длину строки
min($min, ?WhenPresenceInterface $presence = null)
Проверка на минимальное значение
notIn($presence, ...$notIn)
Не допустимые значения (не строгая проверка значения)
null(?WhenPresenceInterface $presence = null)
Является ли значение null
numeric(?WhenPresenceInterface $presence = null)
Является ли значение числом
regex(string $regex, ?WhenPresenceInterface $presence = null)
Проверка на регулярное выражение
requiredIfPresence(?WhenPresenceInterface $presence = null)
Обязательное значение, если передано
required()
Обязательное значение
requiredWith(string ...$fieldNames)
Обязательное значение, если есть значения в полях
same(string $fieldName, ?WhenPresenceInterface $presence = null)
Совпадает ли значение со значением в указанном поле
strictIn($presence, ...$in)
Допустимые значения (строгая проверка значения)
strictNotIn($presence, ...$notIn)
Не допустимые значения (строгая проверка значения)
string(?WhenPresenceInterface $presence = null)
Является ли значение строкой
Пользовательское правило проверки
В библиотеки есть возможность расширить доступные правила проверки. Правило проверки должно реализовывать интерфейс .
Пример реализации пользовательского правила проверки:
Зарегистрируем пользовательское правило в классе валидатора с помощью метода :
И можно использовать пользовательское правило проверки:
All versions of validation with dependencies
ext-json Version *
fi1a/collection Version ^2.0
fi1a/format Version ^2.0
fi1a/tokenizer Version ^1.1
fi1a/hydrator Version ^1.1