rocketfellows / gr-vat-number-format-validators-config
Requires
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^8.5
- roave/security-advisories: dev-latest
- squizlabs/php_codesniffer: 3.6.2
This package is not auto-updated.
Last update: 2024-11-16 03:07:07 UTC
README
This package provides a preconfigured configuration class for vat number format validators for Greece country. Is an extension of the package https://github.com/rocketfellows/specific-country-vat-number-format-validators-config.
Installation
composer require rocketfellows/gr-vat-number-format-validators-config
Dependencies
- https://github.com/rocketfellows/specific-country-vat-number-format-validators-config v1.0.0;
- https://github.com/rocketfellows/gr-vat-format-validator v1.0.0;
References
- https://github.com/rocketfellows/country-vat-format-validator-interface
- https://github.com/arslanim/iso-standard-3166
List of package components
- rocketfellows\GRVatNumberFormatValidatorsConfig\GRVatNumberFormatValidatorsConfig - preconfigured configuration class for vat number format validators for Greece country;
GRVatNumberFormatValidatorsConfig description
A configuration class that provides a match for the vat number format validators for the country Greece.
Class interface:
- getCountry - returns Greece Country instance;
- getValidators - returns validators tuple
When initializing the default configuration, the getValidators function returns a tuple with a single validator - an instance of GRVatFormatValidator.
$config = new GRVatNumberFormatValidatorsConfig(); $config->getCountry(); // returns Greece Country instance $config->getValidators(); // returns CountryVatFormatValidators with one item - instance of GRVatFormatValidator
You can override the default validator by initializing the configuration class object with a new default validator through the first parameter of the class constructor. Attention - validator must implement interface CountryVatFormatValidatorInterface.
$newDefaultValidator = new NewDefaultValidator(); // instance of CountryVatFormatValidatorInterface $config = new GRVatNumberFormatValidatorsConfig($newDefaultValidator); // initialize with new default validator $config->getValidators(); // returns CountryVatFormatValidators with one item - $newDefaultValidator
You can add additional validators to the default validator via the second constructor parameter.
Attention - additional validators parameter must be instance of tuple CountryVatFormatValidators. And each additional validator must implement interface CountryVatFormatValidatorInterface.
$firstAdditionalValidator = new FirstAdditionalValidator(); // instance of CountryVatFormatValidatorInterface $secondAdditionalValidator = new SecondAdditionalValidator(); // instance of CountryVatFormatValidatorInterface $config = new GRVatNumberFormatValidatorsConfig( null, ( new CountryVatFormatValidators( $firstAdditionalValidator, $secondAdditionalValidator ) ) ); // returns CountryVatFormatValidators with three items: // default preconfigured validator by default - instance of GRVatFormatValidator // $firstAdditionalValidator - from additional tuple // $secondAdditionalValidator - from additional tuple $config->getValidators();
You can also completely rebuild the configuration by passing the default validator and a tuple of additional validators to the config class constructor.
$defaultValidator = new DefaultValidator(); // instance of CountryVatFormatValidatorInterface $firstAdditionalValidator = new FirstAdditionalValidator(); // instance of CountryVatFormatValidatorInterface $secondAdditionalValidator = new SecondAdditionalValidator(); // instance of CountryVatFormatValidatorInterface $config = new GRVatNumberFormatValidatorsConfig( $defaultValidator, ( new CountryVatFormatValidators( $firstAdditionalValidator, $secondAdditionalValidator ) ) ); // returns CountryVatFormatValidators with three items: // $defaultValidator from constructor first parameter // $firstAdditionalValidator - from additional tuple // $secondAdditionalValidator - from additional tuple $config->getValidators();
More use case examples can be found in the package's unit tests.
Contributing
Welcome to pull requests. If there is a major changes, first please open an issue for discussion.
Please make sure to update tests as appropriate.