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