germania-kg / vatidno
增值税识别号接口和特性。
1.3.0
2023-01-03 14:25 UTC
Requires
- php: ^7.0|^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.12
- php-coveralls/php-coveralls: ^2.0
- phpspec/prophecy: ^1.16
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^8.0|^9.0
Suggests
- ddeboer/vatin: Validate VAT identification numbers
This package is auto-updated.
Last update: 2024-08-30 01:08:04 UTC
README
处理增值税识别号的接口、特性和过滤器
安装
$ composer require germania-kg/vatidno
接口
VatIdNoProviderInterface
提供一个名为 VatIdNo 的方法来检索增值税识别号(作为字符串)。
use Germania\VatIdNo\VatIdNoProviderInterface; /** * @return string */ public function getVatIdNo();
VatIdNoAwareInterface
扩展 VatIdNoProviderInterface 并提供一个名为 setVatIdNo 的方法,允许您设置增值税识别号。
use Germania\VatIdNo\VatIdNoProviderInterface; /** * @param string $vatin * @return self */ public function setVatIdNo( $vatin ); public function getVatIdNo();
特性
VatIdNoProviderTrait
实现 VatIdNoProviderInterface 并提供一个公共属性 vatin:
use Germania\VatIdNo\VatIdNoProviderInterface; use Germania\VatIdNo\VatIdNoProviderTrait; class MyClass implements VatIdNoProviderInterface { use VatIdNoProviderTrait; public function __construct( $vatin ) { $this->vatin = $vatin; } }
VatIdNoAwareTrait
实现 VatIdNoAwareInterface。利用 VatIdNoProviderTrait。
use Germania\VatIdNo\VatIdNoAwareInterface; use Germania\VatIdNo\VatIdNoAwareTrait; class MyClass implements VatIdNoAwareInterface { use VatIdNoAwareTrait; } // Simple example $object1 = new MyClass; $object1->setVatIdNo( "XY000000" ); // Fluent interface echo $object1->setVatIdNo( "XY000000" )->vatin; // Setting using VatIdNoProviderInterface $object2 = new MyClass; $object2->setVatIdNo( $object1 );
过滤器
WithVatIdNoFilterIterator
用于筛选提供增值税识别号的记录。这些可能是
- 包含
vatin
键且值非空的数组 - 包含
vatin
属性且值非空的对象 - 实现
VatIdNoProviderInterface
的实例,其中 getVatIdNo 返回非空结果
<?php use Germania\VatIdNo\Filters\WithVatIdNoFilterIterator; $records = new \ArrayIterator( ask_database() ); // Allow custom field names in arrays or objects $records_with_vatin = new WithoutVatIdNoFilterIterator( $records ); $records_with_vatin = new WithoutVatIdNoFilterIterator( $records, "ust_id" ); foreach( $records_with_vatin as $item): // Do things like validating endforeach;
WithoutVatIdNoFilterIterator
用于筛选未提供增值税识别号的记录。这些可能是
- 缺少
vatin
键或vatin
元素为空的数组 - 缺少
vatin
属性或vatin
属性为空的对象 - 实现
VatIdNoProviderInterface
的实例,其中 getVatIdNo 返回空结果
<?php use Germania\VatIdNo\Filters\WithoutVatIdNoFilterIterator; $records = new \ArrayIterator( ask_database() ); // Allow custom field names in arrays or objects $records_lacking = new WithoutVatIdNoFilterIterator( $records ); $records_lacking = new WithoutVatIdNoFilterIterator( $records, "ust_id" ); foreach( $records_lacking as item): //... endforeach;
验证
要验证增值税识别号,请使用专门的包,例如 David de Boer 的 ddeboer/vatin 包。
开发
$ git clone https://github.com/GermaniaKG/VatIdNo.git
$ cd VatIdNo
$ composer install
单元测试
可以将 phpunit.xml.dist
复制到 phpunit.xml
并根据您的需求进行适配,或者保持原样。运行 PhpUnit 测试或 composer 脚本,如下所示
$ composer test # or $ vendor/bin/phpunit