vanio / type-parser
用于解析使用 @var PHPDoc 注释定义的属性类型的库
dev-master / 0.1.x-dev
2020-08-24 20:37 UTC
Requires
- php: ^7.0
- doctrine/annotations: ^1.2
- doctrine/cache: ^1.6
Requires (Dev)
- phpunit/phpunit: ^6.5.14
- symfony/config: ^3.0
- symfony/dependency-injection: ^3.4.26
- symfony/http-foundation: ^3.4.35
- symfony/http-kernel: ^3.0
- vanio/coding-standards: ^0.2@dev
This package is auto-updated.
Last update: 2024-09-06 11:33:25 UTC
README
这是一个用于解析类型表达式和/或使用 var PHPDoc 注释定义的属性类型的库,几乎按照 PSR-5 规范草案中的定义进行,但稍微宽松一些。它还支持将两种(或更多)类型合并,例如 int|string
-> scalar
或 string[]|int[]
-> scalar[]
PSR-5 ABNF: https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc.md#user-content-abnf
示例
<?php use Doctrine\Common\Cache\FilesystemCache; use Vanio\TypeParser\CachingParser; use Vanio\TypeParser\Tests\Fixtures\Foo; use Vanio\TypeParser\TypeParser; $typeParser = new CachingParser(new TypeParser, new FilesystemCache(__DIR__ . '/cache')); $type = $typeParser->parsePropertyTypes(Foo::class); $type['scalar']->type(); // /** @var int|string */ -> new CompoundType(Type::INTEGER, Type::STRING) -> new SimpleType(Type::SCALAR)