type-lang/phpdoc-template-tags

1.0.0 2024-06-29 18:02 UTC

This package is auto-updated.

Last update: 2024-09-02 07:52:04 UTC


README

PHP 8.1+ Latest Stable Version Latest Unstable Version License MIT

支持PHPDoc标准DocBlock标签。

阅读文档页面获取更多信息。

安装

在项目的根目录下,TypeLang PHPDoc标准标签作为Composer仓库提供,可以使用以下命令安装:

composer require type-lang/phpdoc-template-tags

简介

支持高级模板注释。

  • @templateTypeLang\PHPDoc\Template\TemplateTagFactory
  • @template-covariantTypeLang\PHPDoc\Template\TemplateCovariantTagFactory
  • @template-contravariantTypeLang\PHPDoc\Template\TemplateContravariantTagFactory
  • @template-extends (或 @extends) — TypeLang\PHPDoc\Template\TemplateExtendsTagFactory
  • @template-implements (或 @implements) — TypeLang\PHPDoc\Template\TemplateImplementsTagFactory
  • @template-use (或 @use) — TypeLang\PHPDoc\Template\TemplateUseTagFactory

用法

use TypeLang\PHPDoc\Parser;
use TypeLang\PHPDoc\Template;
use TypeLang\PHPDoc\Tag\Factory\TagFactory;

$tags = new TagFactory();

// Add support of template tags
$tags->register('template', new Template\TemplateTagFactory());
$tags->register('template-covariant', new Template\TemplateCovariantTagFactory());
$tags->register('template-contravariant', new Template\TemplateContravariantTagFactory());
$tags->register(['extends', 'template-extends'], new Template\TemplateExtendsTagFactory());
$tags->register(['implements', 'template-implements'], new Template\TemplateImplementsTagFactory());
$tags->register(['use', 'template-use'], new Template\TemplateUseTagFactory());

$docblock = (new Parser($tags))
    ->parse(<<<'PHPDOC'
        /**
         * @template T of object
         * @template-extends \Traversable<array-key, T>
         */
        PHPDOC);

var_dump($docblock);