gossi/docblock

PHP Docblock parser and generator. An API to read and write Docblocks.

Installs: 912

Dependents: 2

Stars: 8

Watchers: 2

Language: PHP

v1.4 2015-05-15 11:39 UTC

README

DOI Build Status Scrutinizer Code Quality Code Coverage

PHP Docblock parser and generator. An API to read and write Docblocks.

Installation

Install via Composer:

{
    "require": {
        "gossi/docblock": "~1"
    }
}

And inject the Composer autoloader into your source code:

require_once 'path/to/vendor/autoload.php';

Usage

1. Generate a Docblock instance

a) Simple:

use gossi\docblock\Docblock;

$docblock = new Docblock();

b) Create from string:

use gossi\docblock\Docblock;

$docblock = new Docblock('/**
 * Short Description.
 *
 * Long Description.
 *
 * @author gossi
 */');

c) Create from reflection:

use gossi\docblock\Docblock;

$docblock = new Docblock(new \ReflectionClass('MyClass'));

2. Manipulate tags

Get the tags:

$tags = $docblock->getTags();

Get tags by name:

$tags = $docblock->getTags('author');

Append a tag:

use gossi\docblock\tags\AuthorTag;

$author = new AuthorTag();
$author->setName('gossi');
$docblock->appendTag($author);

or with fluent API:

use gossi\docblock\tags\AuthorTag;

$docblock->appendTag(AuthorTag::create()
    ->setName('gossi')
);

Check tag existence:

$docblock->hasTag('author');

3. Get back the string

Call toString():

$docblock->toString();

or if you are in a write-context, the magical __toString() will take care of it:

echo $docblock;

Contributing

Feel free to fork and submit a pull request (don't forget the tests) and I am happy to merge.

References

Changelog

Version 1.2 - November, 4th 2014

  • Renamed DocBlock to Docblock
  • Added License Tag
  • Added Link Tag

Version 1.1 - May, 28th 2014

  • Added tag sorting for DocBlock::toString();

Version 1.0.1 - May, 28th 2014

  • Don't wordwrap long lines anymore. Fixing fluent interface for AbstractTag::setDescription();

Version 1.0 - May, 28th 2014

  • Initial release