singlequote/docblock-parser

此包已被弃用且不再维护。作者建议使用 phpdocumentor/reflection-docblock 包。

一个简单快速的 PHP Docblock 解析器

v1.0.0 2018-12-17 12:44 UTC

This package is auto-updated.

Last update: 2020-12-01 13:16:43 UTC


README

Latest Version on Packagist Build Status Total Downloads

此包允许您轻松解析类或方法中的 docblocks。

安装

您可以通过 composer 安装此包

composer require singlequote/docblock-parser

Laravel

在 Laravel 5.5 或更高版本中,服务提供程序将自动注册。在框架的较旧版本中,只需将服务提供程序添加到 config/app.php 文件中。

'providers' => [
    // ...
    SingleQuote\DocblockParser\DocblockParserServiceProvider::class,
];

现在可以通过 DocblockParser 门面访问解析器。

用法

初始化

$parser = DocblockParser::forClass("ClassName");
$parser = DocblockParser::forMethod("ClassName", "Method");
$parser = DocblockParser::forProperty("ClassName", "Property"); // works with static properties
$parser = new DocblockParser(new ReflectionObject(new stdClass()));

获取注释

$parser->getComment();

获取标签

$parser->tagName;

// or

$parser->getTag('tagName', 'default value');

获取所有标签

$parser->getTags();

检查标签是否存在

$parser->hasTag('tagName');

使用真/假值

要检查真/假值,需要在标签名称之前放置 "is"。这将检查标签是否存在或标签值是否为真。

/**
 * @deprecated
 */
function foo(){}
$parser->isDeprecated;

获取原始 docblock

$parser->getRaw();

示例

以下示例基于此类

/**
 * Class FooBar
 * @version 1.0.0
 */
class FooBar
{
    /**
     * @var string
     */
    public static $version = "1.0.0";

    /**
     * @var string
     */
    public static $baz = "baz";

    /**
     * @var string
     */
    public $bar = "bar";


    /**
     * Simple multiply
     *
     * @param int $number
     * @param int $multiply
     *
     * @return float|int
     */
    public function foo(int $number, int $multiply)
    {
        return $number * $multiply;
    }


    /**
     * Get the version
     *
     * @return string
     */
    public function version()
    {
        return self::$version;
    }
}

解析类 docblock

$parser = DocblockParser::forClass("FooBar");

// Get the comment
$parser->getComment(); // Class FooBar

// Get the version tag
$parser->version; // 1.0.0

解析方法 docblock

$parser = DocblockParser::forMethod("FooBar", "foo");

// Get the comment
$parser->getComment(); // Simple multiply

// Get the return tag
$parser->return; // float|int

// Check if a tag exists or is true
$parser->isDeprecated; // false

// Check if a tag exists
$parser->hasTag('author'); // false

测试

composer test

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

贡献

有关详细信息,请参阅 CONTRIBUTING

鸣谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件