serenata / docblock-type-parser

该软件包已被废弃,不再维护。作者建议使用phpstan/phpdoc-parser软件包代替。

PHP文档块类型解析器

0.4.0 2018-07-25 18:59 UTC

This package is auto-updated.

Last update: 2020-04-06 19:54:16 UTC


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来比较两种类型。它将指示它们是否等效。这将简单地检查两个节点(在复合类型的情况下是层次结构)是否相同,或者包含相同的类型,尽管顺序不同(因此它们在语义上仍然是等效的)。

GPLv3 Logo