czachor/polish-id-validators

此包已废弃,不再维护。未建议替代包。

基于Symfony Validator Component的PHP库,用于验证在波兰使用的各种医疗识别号。

v1.3.1 2022-03-15 11:27 UTC

This package is auto-updated.

Last update: 2022-03-15 19:37:28 UTC


README

版本:1.3

该包目前标记为已弃用。新版本即将推出。

基于Symfony Validator Component的PHP库,用于验证在波兰使用的各种医疗识别号。

仅进行算法验证,主要基于校验位。它不会查询官方医疗登记册以获取任何数据或检查记录(ID)是否存在。

可用的验证器

需求

PHP 7.2+。

安装

通过Composer

$ composer require czachor/polish-id-validators

使用

所有ID必须以字符串形式传递。

直接方法

<?php
use Czachor\PolishIdValidators\Entities\PwzEntity;
use Czachor\PolishIdValidators\Validator;

$pwz_id = new PwzEntity('5425740'); // Polish medical licence ID
/** @var Symfony\Component\Validator\ConstraintViolationListInterface $obj_validator */
$violations = Validator::validate($pwz_id);

if ($violations->count() > 0) {
    foreach ($violations as $violation) {
        echo 'Error! ' . $violation->getMessage();
    }
} else {
    echo 'Valid!';
}

使用Symfony组件

<?php
use Czachor\PolishIdValidators\Entities\PwzEntity;
use Symfony\Component\Validator\Validation;

$pwz_id = new PwzEntity('5425740'); // Polish medical licence ID 
$validator = Validation::createValidatorBuilder()
    ->addMethodMapping('loadValidatorMetadata')
    ->getValidator();
$violations = $validator->validate($pwz_id);

// ...

翻译

翻译使用Symfony Translation Component

支持的语言

  • 英语(默认)- en_US
  • 波兰语 - pl_PL

如何使用

<php
$violations = Validator::validate($pwz_id, 'pl_PL');

如果您的语言不受支持,您可以手动添加

<?php
$violations = Validator::validate($pwz_id, 'pt_BR', $path_to_your_php_resource_file);

或者如果您想使用不同的加载器

use Symfony\Component\Translation\Translator;
use Symfony\Component\Translation\Loader\ArrayLoader;
use Symfony\Component\Validator\Validation;
use Czachor\PolishIdValidators\Entities\PwzEntity;

$translator = new Translator('fr_FR');
$translator->addLoader('array', new ArrayLoader());
$translator->addResource('array', [
    'Hello World!' => 'Bonjour',
], 'fr_FR');

$validator = Validation::createValidatorBuilder()
    ->addMethodMapping('loadValidatorMetadata')
    ->setTranslator($translator)
    ->getValidator();

$pwz_id = new PwzEntity('5425740'); // Polish medical licence ID 
$violations = $validator->validate($pwz_id);
// ...

待办事项

  • 更多验证器
  • 注解
  • 更多翻译

许可证

MIT许可证(MIT)。