aeviiq / value-object
A library that provides strict value objects in PHP.
Installs: 9 544
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 3
Forks: 4
Open Issues: 2
Requires
- php: ^7.2|^8.0
- aeviiq/enum: ^2.0 || ^3.0
- symfony/validator: ^3.4|^4.3|^5.0|^6.0
Requires (Dev)
- phpstan/phpstan: ^0.12.59
- phpstan/phpstan-phpunit: ^0.12.16
- phpstan/phpstan-strict-rules: ^0.12.5
- phpunit/phpunit: ^8.5
- psalm/plugin-phpunit: ^0.16.1
- roave/security-advisories: dev-master
- thecodingmachine/phpstan-strict-rules: ^0.12.1
- vimeo/psalm: ^4.11
This package is auto-updated.
Last update: 2023-01-08 10:20:19 UTC
README
Why
To provide an easy way to create value objects in PHP. Validation can be done by using the Symfony Validator component (https://github.com/symfony/validator and its documentation https://symfony.com/doc/current/validation.html#constraints). This also allows for easy integration with the Symfony Form component, as the value object constraints are defined statically.
Installation
composer require aeviiq/value-object
Declaration
<?php declare(strict_types=1); namespace Aeviiq\ValueObject\Value; use Aeviiq\ValueObject\AbstractString; use Aeviiq\ValueObject\Normalizer; use Symfony\Component\Validator\Constraints; final class Iban extends AbstractString { /** * {@inheritDoc} */ public static function getConstraints(): array { return [ new Constraints\Iban(), ]; } /** * {@inheritDoc} */ protected function normalize($value): string { return Normalizer::removeWhitespace($value); } }
Usage
$iban = new Iban('Invalid value'); // Results in InvalidArgumentException $iban = new Iban('NL91 ABNA 0417 1643 00'); // Contains a valid Iban.