old-oak/easy-validator

Validating data means PHP.

dev-master 2022-07-20 10:35 UTC

This package is not auto-updated.

Last update: 2025-07-03 23:04:14 UTC


README

Простая, независимавая библиотека для валидации данных с удобным синтаксисом и применением.

Приемущества

  • Независиммая, нет внутренних зависимостей других библиотек.
  • Простая в использовании.
  • Просто расширяется.

Установка

Через Composer

$ composer require old-oak/easy-validator

Или просто скачав архив и добавив подключение файла автозагрузки.

require_once 'autoload.php';

Использование

Множественная проверка на несколько правил:

use OldOak\EasyValidator\Validator;

//Поля для проверки со сводами правил
$fields = [
  'login' => ['required', 'email']
];

//Значение, для проверки
$values = [
    'login' => 'test@test.com'
];

//Сообщения об ошибках исходя из правила
$messages = [
  'login.required' => 'Введите Ваш логин',
  'login.email' => 'Ваш логин должен быть электронной почтой',
];

//Или так
$messages1 = [
  'login' => 'Логин обязателен и должен быть электронной почтой.',
];

//Получаем экземпляр валидатора
$validator = Validator::make($fields, $values, $messages);

//Валидируем данные и получаем результат валидации
$res = $validator->validate()->result;

Одиночная проверка

use OldOak\EasyValidator\Validator;

//Проверяем, является ли данные электронной почтой
$isEmail = Validator::isEmail('test@test.com');

Добавление кастом правил для валидации

use OldOak\EasyValidator\Rule\AbstractRulebook;
use OldOak\EasyValidator\Rule\Registration;

//Создаем класс, которые будет валидировать новое правило
class KnockRule extends AbstractRulebook {

    /**
     * Метод проверки
     * @return bool
     */
    public function validate()
    {
        return $this->value === 'knock';
    }
}

//Регистрируем правило в библиотеке
Registration::addCustomRule('knock', KnockRule::class);

//Используем проверку
$isKnock = Validator::isKnock('knock');

Таблица свода правил, которые доступны по умолчанию

Название правила Описание Использование
Boolean Проверка на логический тип boolean
Char Проверка строки с определенным кол-вом символов N char:5
CharMax Проверка строки с определенным кол-вом символов, которое меньше или равно N charMax:5
CharMin Проверка строки с определенным кол-вом символов, которое больше или равно N charMin:5
Choice Проверка наличия значение в списке choice:[test|123]
Date Проверка, является ли значение датой date
Digits Проверка, является ли значение целым числом digits, digits:5
Email Проверка, является ли значение электронной почтой email
File Проверка, является ли значение файлом и расширением file, file:jpg, file:[png|jpg]
Float Проверка, является ли значение с плавающей запятой float
Max Проверка, является ли значение числом, которое больше чем N max:5
Min Проверка, является ли значение числом, которое меньше чем N min:5
Nullable Пропуск пустого значения nullable
Numeric Проверка, является ли значение числом numeric, numeric:123, numeric:3,5
Object Проверка, является ли значение объектом object
OnlyLetters Проверка, является ли значение строкой только с буквами или пустой onlyLetters
Phone Проверка, является ли значение номером телефона из определенной страны phone, phone:rus, phone:[rus|ukr]
Plurality Проверка, является ли значение массивом или объектом, который реализует интерфейс ArrayAccess plurality
Regexp Проверка, значения по шаблону регулярного выражения regexp:/^a-zA-Z$/
Required Проверка, является ли значение заполненным required
String Проверка, является ли значение строкой string
Url Проверка, является ли значение url url, url:google.com

Содействие разработки

Спасибо, что решили внести свой вклад в разработку данной библиотеки.

Лицензия

Библиотека использует GNU GPLv3. Дополненеие к данной лицензии служит то, что ЛЮБОЙ разработчик может ее использовать вне зависимсоти от политической обстановки.