Files
HRM-System/vendor/yoomoney/yookassa-sdk-validator
2026-04-13 08:19:53 +08:00
..
2026-04-13 08:19:53 +08:00
2026-04-13 08:19:53 +08:00
2026-04-13 08:19:53 +08:00
2026-04-13 08:19:53 +08:00
2026-04-13 08:19:53 +08:00
2026-04-13 08:19:53 +08:00
2026-04-13 08:19:53 +08:00

YooKassa API PHP Validator

Latest Stable Version Total Downloads Monthly Downloads License

Библиотека для валидирования значений, присваиваемых полям объекта, через чтение атрибутов этих полей. Предназначена для использования в составе YooKassa API PHP Client Library

Требования

PHP 8.0 (и выше)

Установка

В консоли с помощью Composer

  1. Установите менеджер пакетов Composer.
  2. В консоли выполните команду:
composer require yoomoney/yookassa-sdk-validator

В файле composer.json своего проекта

  1. Добавьте строку "yoomoney/yookassa-sdk-validator": "^1.0" в список зависимостей вашего проекта в файле composer.json:
...
    "require": {
        "php": ">=8.0",
        "yoomoney/yookassa-sdk-validator": "^1.0"
...
  1. Обновите зависимости проекта. В консоли перейдите в каталог, где лежит composer.json, и выполните команду:
composer install
  1. В коде вашего проекта подключите автозагрузку файлов валидатора:
require __DIR__ . '/vendor/autoload.php';

Начало работы

  1. Импортируйте нужные классы валидатора:
use YooKassa\Validator\Validator;
use YooKassa\Validator\Constraints as Assert;
  1. Добавьте нужные правила для валидации полей класса через атрибуты:
#[Assert\NotBlank]
#[Assert\Length(min: 2)]
private string $title;
  1. Создайте экземпляр валидатора, передав в конструктор экземпляр класса, поля которого необходимо валидировать:
$validator = new Validator($this);
  1. Вызовите функцию validatePropertyValue(), передав в нее название валидируемого поля и значение:
$validator->validatePropertyValue('title', $title);
  1. Если значение не будет соответствовать правилам, заданным через атрибуты, валидатор выбросит исключение.

Чтобы пропустить проверку по какому-либо правилу или списку правил, заданному для поля класса, передайте массив с именами классов-правил в качестве параметра в функцию validatePropertyValue:

$validator->validatePropertyValue('title', $title, [Assert\Length::class]);

Чтобы получить список правил для конкретного поля, вызовите функцию getRulesByPropName(), передав в качестве параметра название поля:

$constraintsList = $validator->getRulesByPropName('title');

Example

<?php

require_once './vendor/autoload.php';

use YooKassa\Validator\Constraints as Assert;
use YooKassa\Validator\Validator;

class PaymentItemModel
{
    #[Assert\Length(min: 5)]
    private ?string $title;

    private Validator $validator;

    public function __construct()
    {
        $this->validator = new Validator($this);
    }

    public function setTitle(?string $title): PaymentItemModel
    {
        $this->validator->validatePropertyValue('title', $title);
        $this->title = $title;
        return $this;
    }
}

$paymentItem = new PaymentItemModel();
try {
    // Валидатор не выбросит исключение
    $paymentItem->setTitle('title');
    echo 'success!';
} catch (Exception $exception) {
    var_dump($exception->getMessage());
}

try {
    // Валидатор выбросит исключение
    $paymentItem->setTitle('titl');
} catch (Exception $exception) {
    echo 'fail!';
    var_dump($exception->getMessage());
}