sllh / iso-codes-validator

ronanguilloux/isocodes 的 Symfony 验证包装器

v4.2.0 2023-09-19 12:41 UTC

README

本项目是 IsoCodes 项目的 Symfony 验证包装器。

Latest Stable Version Latest Unstable Version License Dependency Status Reference Status

Total Downloads Monthly Downloads Daily Downloads

Build Status AppVeyor Status Scrutinizer Code Quality Code Climate Coverage Status SensioLabsInsight

安装

首先,您需要通过 composer 需求此库

$ composer require sllh/iso-codes-validator

之后,您可以像使用其他库一样使用它。

如果您正在使用 Symfony 项目,请阅读以下说明以获得更好的集成。

作为 Symfony 扩展包

如果您项目 未使用 Symfony 全栈,您必须添加以下依赖项

$ composer require symfony/dependency-injection symfony/http-kernel symfony/finder

翻译

如果您希望在此扩展包中使用默认验证器消息翻译,您必须确保您的配置中启用了翻译器。

# app/config/config.yml

framework:
    translator: ~

启用扩展包

// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new SLLH\IsoCodesValidator\Bridge\Symfony\Bundle\SLLHIsoCodesValidatorBundle(),
    );
}

用法

IsoCodesValidator 基于 Symfony Validator 库。

手动使用

通过使用 Symfony Validation 类创建和使用 IsoCodes 约束

use Symfony\Component\Validator\Validation;
use SLLH\IsoCodesValidator\Constraints\Vat;

$validator = Validation::createValidator();

$violations = $validator->validateValue('DE123456789', new Vat());

使用注解

使用“约束映射”可以验证对象。通过此类映射,您可以将约束放置在类的属性和对象上。每当验证此类对象时,其属性和方法结果都会与约束进行匹配。

use Symfony\Component\Validator\Validation;
use Symfony\Component\Validator\Constraints as Assert;
use SLLH\IsoCodesValidator\Constraints as IsoCodesAssert;

class Company
{
    /**
     * @Assert\NotBlank
     * @IsoCodesAssert\Siret
     */
    private $siret;

    /**
     * @Assert\NotBlank
     * @IsoCodesAssert\Siren
     */
    private $siren;

    /**
     * @IsoCodesAssert\Vat
     */
    private $vat;

    /**
     * @IsoCodesAssert\ZipCode(country = "FR")
     */
    private $zipCode;

    public function __construct($siret, $siren, $vat, $zipCode)
    {
        $this->siret = $siret;
        $this->siren = $siren;
        $this->vat = $vat;
        $this->zipCode = $zipCode
    }
}

$validator = Validation::createValidatorBuilder()
    ->enableAnnotationMapping()
    ->getValidator();

$company = new Company('48853781200015', '432167567', 'DE123456789', '59000');

$violations = $validator->validate($company);

约束参考

约束类可以在 src/Constraints 中找到。

除非指定 message,否则所有内容都将“原样”使用,不带有任何选项。

只有 ZipCode 约束接受一个 country 选项来限制验证(默认为 'all')。

请注意,一些 IsoCodes 类已在 Symfony 验证组件 中实现。您可以选择使用哪个。

如果您认为缺少某个 IsoCodes 类,请随时提交问题或发起 PR。

许可证

本项目采用 MIT 许可证。有关完整的许可证信息,请参阅 LICENSE 文件。

待办事项