Compare commits

...
4 changed files with 62 additions and 4 deletions
+57
View File
@@ -0,0 +1,57 @@
The ReflectionDocBlock Component
================================
Introduction
------------
The ReflectionDocBlock component of phpDocumentor provides a DocBlock parser
that is 100% compatible with the [PHPDoc standard](http://phpdoc.org/docs/latest).
With this component can a library provide support for annotations via DocBlocks
or otherwise retrieve information that is embedded in a DocBlock.
> **Note**: *this is a core component of phpDocumentor and is constantly being
> optimized for performance.*
Installation
------------
You can install the component in the following ways:
* Use the official Github repository (https://github.com/phpDocumentor/ReflectionDocBlock)
* Via Composer (http://packagist.org/packages/phpdocumentor/reflection-docblock)
Usage
-----
The ReflectionDocBlock component is designed to work in an identical fashion to
PHP's own Reflection extension (http://php.net/manual/en/book.reflection.php).
Parsing can be initiated by instantiating the
`\phpDocumentor\Reflection\DocBlock()` class and passing it a string containing
a DocBlock (including asterisks) or by passing an object supporting the
`getDocComment()` method.
> *Examples of objects having the `getDocComment()` method are the
> `ReflectionClass` and the `ReflectionMethod` classes of the PHP
> Reflection extension*
Example:
$class = new ReflectionClass('MyClass');
$phpdoc = new \phpDocumentor\Reflection\DocBlock($class);
or
$docblock = <<<DOCBLOCK
/**
* This is a short description.
*
* This is a *long* description.
*
* @return void
*/
DOCBLOCK;
$phpdoc = new \phpDocumentor\Reflection\DocBlock($docblock);
+3 -2
View File
@@ -6,9 +6,10 @@
{"name": "Mike van Riel", "email": "[email protected]"} {"name": "Mike van Riel", "email": "[email protected]"}
], ],
"require": { "require": {
"php": ">=5.3.2" "php": ">=5.3.2",
"dflydev/markdown": "1.0.*"
}, },
"autoload": { "autoload": {
"psr-0": {"phpDocumentor\\Reflection": "src/phpDocumentor"} "psr-0": {"phpDocumentor\\Reflection": "src/"}
} }
} }
@@ -78,7 +78,7 @@ class LongDescription implements \Reflector
); );
} }
if (class_exists('\dflydev\markdown\MarkdownExtraParser()')) { if (class_exists('\dflydev\markdown\MarkdownExtraParser')) {
$md = new \dflydev\markdown\MarkdownExtraParser(); $md = new \dflydev\markdown\MarkdownExtraParser();
$result = $md->transformMarkdown($result); $result = $md->transformMarkdown($result);
} }
@@ -59,7 +59,7 @@ class Tag implements \Reflector
$tag_name = str_replace( $tag_name = str_replace(
' ', '', ucwords(str_replace('-', ' ', $matches[1])) ' ', '', ucwords(str_replace('-', ' ', $matches[1]))
).'Tag'; ).'Tag';
$class_name = '\\phpDocumentor\\Reflection\\DocBlock\\Tag\\' . $tag_name; $class_name = 'phpDocumentor\\Reflection\\DocBlock\\Tag\\' . $tag_name;
return (@class_exists($class_name)) return (@class_exists($class_name))
? new $class_name($matches[1], isset($matches[2]) ? $matches[2] : '') ? new $class_name($matches[1], isset($matches[2]) ? $matches[2] : '')