vanio/type-parser

用于解析使用 @var PHPDoc 注释定义的属性类型的库

dev-master / 0.1.x-dev 2020-08-24 20:37 UTC

This package is auto-updated.

Last update: 2024-09-06 11:33:25 UTC


README

Build Status Coverage Status PHP7 License

这是一个用于解析类型表达式和/或使用 var PHPDoc 注释定义的属性类型的库,几乎按照 PSR-5 规范草案中的定义进行,但稍微宽松一些。它还支持将两种(或更多)类型合并,例如 int|string -> scalarstring[]|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)