/docblock

PHP DocBlock parser and generator. An API to read and write DocBlocks.

Primary LanguagePHP

Docblock

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