serenata / docblock-type-parser
0.4.0
2018-07-25 18:59 UTC
Requires
- php: >=7.1.0
- ext-mbstring: *
Requires (Dev)
- phpspec/phpspec: ^4.3
- symfony/var-dumper: ^4.0
README
将文档块类型或类型规范转换为更易用的类型对象树。
该项目属于Serenata项目。
安装
composer require serenata/docblock-type-parser
使用方法
<?php
use Serenata\DocblockTypeParser\DocblockTypeParser;
use Serenata\DocblockTypeParser\CompoundDocblockType;
$parser = new DocblockTypeParser();
$type = $parser->parse('(int|bool)[]|string[]|array|null');
assert($type instanceof CompoundDocblockType);
assert($type->toString() === '(int|bool)[]|string[]|array|null');
文档块类型是什么?
文档块类型是在文档块中指定的类型,用于参数、返回值和其他内容。它们允许缩小参数的类型,这在PHP本身中是不可能的,因此其语法更为复杂。
文档块类型可以被各种工具解析,例如Serenata或文档生成器。
<?php
/**
* @param (int|bool)[]|string[]|array|null $test
*/
public function foo(array $test)
{
}
比较
您可以使用类DocblockTypeEquivalenceComparator
来比较两种类型。它将指示它们是否等效。这将简单地检查两个节点(在复合类型的情况下是层次结构)是否相同,或者包含相同的类型,尽管顺序不同(因此它们在语义上仍然是等效的)。