Skip to content

php-type-language/phpdoc-template-tags

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

31 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation


PHP 8.1+ Latest Stable Version Latest Unstable Version License MIT

Adds support of the PHPDoc standard DocBlock tags.

Read documentation pages for more information.

Installation

TypeLang PHPDoc Standard Tags is available as Composer repository and can be installed using the following command in a root of your project:

composer require type-lang/phpdoc-template-tags

Introduction

Adds support for advanced template annotations.

  • @template โ€” TypeLang\PHPDoc\Template\TemplateTagFactory
  • @template-covariant โ€” TypeLang\PHPDoc\Template\TemplateCovariantTagFactory
  • @template-contravariant โ€” TypeLang\PHPDoc\Template\TemplateContravariantTagFactory
  • @template-extends (or @extends) โ€” TypeLang\PHPDoc\Template\TemplateExtendsTagFactory
  • @template-implements (or @implements) โ€” TypeLang\PHPDoc\Template\TemplateImplementsTagFactory
  • @template-use (or @use) โ€” TypeLang\PHPDoc\Template\TemplateUseTagFactory

Usage

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);

About

๐Ÿ”Œ About PHPDoc parser extension library that provides template tags

Resources

License

Code of conduct

Stars

Watchers

Forks

Languages