Skip to content
This repository has been archived by the owner on Jul 28, 2023. It is now read-only.
/ type Public archive
generated from spaceonfire/skeleton

Latest commit

 

History

History
executable file
·
77 lines (56 loc) · 2.62 KB

README.md

File metadata and controls

executable file
·
77 lines (56 loc) · 2.62 KB

Type by spaceonfire

Latest Version on Packagist Software License Total Downloads Code Coverage

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.