/
mistercode
/
calculate-price
Обзор
Документация
Войти
/
mistercode
/
calculate-price
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/Validator/TaxNumberValidator.php
34 строки
1 KB
codefinecode
Tests (with AppTestFixtures), some fixes
09 фев 2025, 13:12
09 фев 2025, 13:12
f6fae59
Код
Авторство
О чём код?
<?php namespace App\Validator; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; class TaxNumberValidator extends ConstraintValidator { public function validate($value, Constraint $constraint) { if (null === $value || '' === $value) { return; } // Паттерны для проверки формата налоговых номеров разных стран $patterns = [ 'DE' => '/^DE\d{9}$/', 'IT' => '/^IT\d{11}$/', 'GR' => '/^GR\d{9}$/', 'FR' => '/^FR[A-Z]{2}\d{9}$/', ]; $countryCode = substr($value, 0, 2); $pattern = $patterns[$countryCode] ?? null; if (!$pattern || !preg_match($pattern, $value)) { // Налоговый номер не соответствует формату для указанной страны $this->context->buildViolation($constraint->message) ->setParameter('{{ value }}', $value) ->addViolation(); } } }