spaceonfire / type
Collection of objects that provides ability of checking value types
Fund package maintenance!
Liberapay
Requires
- php: ^7.2|^8.0
- webmozart/assert: ^1.6
Requires (Dev)
- ext-json: *
- roave/security-advisories: dev-latest
README
Collection of objects that provides ability of checking value types.
Install
Via Composer
$ composer require spaceonfire/type
Usage
use spaceonfire\Type\BuiltinType; use Webmozart\Assert\Assert; $int = new BuiltinType(BuiltinType::INT); Assert::true($int->check(1)); Assert::false($int->check('1')); $intNonStrict = new BuiltinType(BuiltinType::INT, false); Assert::true($intNonStrict->check('1')); Assert::same(1, $intNonStrict->cast('1'));
You can also use factory to create type object from string
use spaceonfire\Type\Factory\CompositeTypeFactory; use spaceonfire\Type\Factory\MemoizedTypeFactory; $factory = new MemoizedTypeFactory(CompositeTypeFactory::makeWithDefaultFactories()); $factory->make('int'); $factory->make('string[]'); $factory->make('array<string,object>'); $factory->make('int|null'); $factory->make('Traversable|iterable|null'); $factory->make('Traversable&JsonSerializable');
Change log
Please see CHANGELOG for more information on what has changed recently.
Contributing
Report issues and send Pull Requests in the main spaceonfire repository. Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
Credits
License
The MIT License (MIT). Please see License File for more information.