mirror of
https://github.com/barryvdh/ReflectionDocBlock.git
synced 2026-08-18 18:13:13 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
280c4a1d44 | ||
|
|
66ae84e9d7 | ||
|
|
3023fb2220 | ||
|
|
a9b6edf3ce | ||
|
|
f3d1a28bf7 | ||
|
|
6d705c1a0f | ||
|
|
ab0bcb8d31 | ||
|
|
ac6e37af97 | ||
|
|
4a7affe15b | ||
|
|
b7797b4e1a | ||
|
|
8b529636bf | ||
|
|
2e9fd6a2e8 | ||
|
|
cbb14bab1e | ||
|
|
d57128e65c | ||
|
|
d9c0928243 | ||
|
|
63c9de4e8b | ||
|
|
76619d4a16 |
+5
-4
@@ -3,17 +3,18 @@ php:
|
|||||||
- 5.3.3
|
- 5.3.3
|
||||||
- 5.3
|
- 5.3
|
||||||
- 5.4
|
- 5.4
|
||||||
|
- 5.5
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- vendor/phpunit/phpunit/composer/bin/phpunit
|
- vendor/bin/phpunit
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- sudo apt-get -qq update > /dev/null
|
- sudo apt-get -qq update > /dev/null
|
||||||
- phpenv rehash > /dev/null
|
- phpenv rehash > /dev/null
|
||||||
- composer selfupdate --quiet
|
- composer selfupdate --quiet
|
||||||
- composer install --dev
|
- composer install --dev --prefer-source
|
||||||
- vendor/phpunit/phpunit/composer/bin/phpunit
|
- vendor/bin/phpunit
|
||||||
- composer update --dev
|
- composer update --dev --prefer-source
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
irc: "irc.freenode.org#phpdocumentor"
|
irc: "irc.freenode.org#phpdocumentor"
|
||||||
|
|||||||
+9
-2
@@ -6,13 +6,20 @@
|
|||||||
{"name": "Mike van Riel", "email": "[email protected]"}
|
{"name": "Mike van Riel", "email": "[email protected]"}
|
||||||
],
|
],
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.3.3",
|
"php": ">=5.3.3"
|
||||||
"dflydev/markdown": "1.0.*"
|
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-0": {"phpDocumentor": ["src/"]}
|
"psr-0": {"phpDocumentor": ["src/"]}
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "3.7.*@stable"
|
"phpunit/phpunit": "3.7.*@stable"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"dflydev/markdown": "1.0.*"
|
||||||
|
},
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.0.x-dev"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ class DocBlock implements \Reflector
|
|||||||
* Splits the docblock into a short description, long description and
|
* Splits the docblock into a short description, long description and
|
||||||
* tags section
|
* tags section
|
||||||
* - The short description is started from the first character until
|
* - The short description is started from the first character until
|
||||||
* a dot is encountered followed by a whitespace OR
|
* a dot is encountered followed by a newline OR
|
||||||
* two consecutive newlines (horizontal whitespace is taken into
|
* two consecutive newlines (horizontal whitespace is taken into
|
||||||
* account to consider spacing errors)
|
* account to consider spacing errors)
|
||||||
* - The long description, any character until a new line is
|
* - The long description, any character until a new line is
|
||||||
@@ -229,6 +229,43 @@ class DocBlock implements \Reflector
|
|||||||
$this->tags = $result;
|
$this->tags = $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the text portion of the doc block.
|
||||||
|
*
|
||||||
|
* Gets the text portion (short and long description combined) of the doc
|
||||||
|
* block.
|
||||||
|
*
|
||||||
|
* @return string The text portion of the doc block.
|
||||||
|
*/
|
||||||
|
public function getText()
|
||||||
|
{
|
||||||
|
$short = $this->getShortDescription();
|
||||||
|
$long = $this->getLongDescription()->getContents();
|
||||||
|
|
||||||
|
if ($long) {
|
||||||
|
return "{$short}\n\n{$long}";
|
||||||
|
} else {
|
||||||
|
return $short;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the text portion of the doc block.
|
||||||
|
*
|
||||||
|
* Sets the text portion (short and long description combined) of the doc
|
||||||
|
* block.
|
||||||
|
*
|
||||||
|
* @param string $docblock The new text portion of the doc block.
|
||||||
|
*
|
||||||
|
* @return $this This doc block.
|
||||||
|
*/
|
||||||
|
public function setText($comment)
|
||||||
|
{
|
||||||
|
list($short, $long) = $this->splitDocBlock($comment);
|
||||||
|
$this->short_description = $short;
|
||||||
|
$this->long_description = new DocBlock\Description($long, $this);
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Returns the opening line or also known as short description.
|
* Returns the opening line or also known as short description.
|
||||||
*
|
*
|
||||||
@@ -348,6 +385,7 @@ class DocBlock implements \Reflector
|
|||||||
return $tag;
|
return $tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builds a string representation of this object.
|
* Builds a string representation of this object.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -209,14 +209,12 @@ class Description implements \Reflector
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the exported information (we should use the export static method
|
* Returns the long description as a string.
|
||||||
* BUT this throws an exception at this point).
|
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
* @codeCoverageIgnore Not yet implemented
|
|
||||||
*/
|
*/
|
||||||
public function __toString()
|
public function __toString()
|
||||||
{
|
{
|
||||||
return 'Not yet implemented';
|
return $this->getContents();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,198 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* phpDocumentor
|
||||||
|
*
|
||||||
|
* PHP Version 5.3
|
||||||
|
*
|
||||||
|
* @author Barry vd. Heuvel <[email protected]>
|
||||||
|
* @copyright 2013 Mike van Riel / Naenius (http://www.naenius.com)
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT
|
||||||
|
* @link http://phpdoc.org
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace phpDocumentor\Reflection\DocBlock;
|
||||||
|
|
||||||
|
use phpDocumentor\Reflection\DocBlock;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Serializes a DocBlock instance.
|
||||||
|
*
|
||||||
|
* @author Barry vd. Heuvel <[email protected]>
|
||||||
|
* @license http://www.opensource.org/licenses/mit-license.php MIT
|
||||||
|
* @link http://phpdoc.org
|
||||||
|
*/
|
||||||
|
class Serializer
|
||||||
|
{
|
||||||
|
|
||||||
|
/** @var string The string to indent the comment with. */
|
||||||
|
protected $indentString = ' ';
|
||||||
|
|
||||||
|
/** @var int The number of times the indent string is repeated. */
|
||||||
|
protected $indent = 0;
|
||||||
|
|
||||||
|
/** @var bool Whether to indent the first line. */
|
||||||
|
protected $isFirstLineIndented = true;
|
||||||
|
|
||||||
|
/** @var int|null The max length of a line. */
|
||||||
|
protected $lineLength = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a Serializer instance.
|
||||||
|
*
|
||||||
|
* @param int $indent The number of times the indent string is
|
||||||
|
* repeated.
|
||||||
|
* @param string $indentString The string to indent the comment with.
|
||||||
|
* @param bool $indentFirstLine Whether to indent the first line.
|
||||||
|
* @param int|null $lineLength The max length of a line or NULL to
|
||||||
|
* disable line wrapping.
|
||||||
|
*/
|
||||||
|
public function __construct(
|
||||||
|
$indent = 0,
|
||||||
|
$indentString = ' ',
|
||||||
|
$indentFirstLine = true,
|
||||||
|
$lineLength = null
|
||||||
|
) {
|
||||||
|
$this->setIndentationString($indentString);
|
||||||
|
$this->setIndent($indent);
|
||||||
|
$this->setIsFirstLineIndented($indentFirstLine);
|
||||||
|
$this->setLineLength($lineLength);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the string to indent comments with.
|
||||||
|
*
|
||||||
|
* @param string $indentationString The string to indent comments with.
|
||||||
|
*
|
||||||
|
* @return $this This serializer object.
|
||||||
|
*/
|
||||||
|
public function setIndentationString($indentString)
|
||||||
|
{
|
||||||
|
$this->indentString = (string)$indentString;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the string to indent comments with.
|
||||||
|
*
|
||||||
|
* @return string The indent string.
|
||||||
|
*/
|
||||||
|
public function getIndentationString()
|
||||||
|
{
|
||||||
|
return $this->indentString;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the number of indents.
|
||||||
|
*
|
||||||
|
* @param int $indent The number of times the indent string is repeated.
|
||||||
|
*
|
||||||
|
* @return $this This serializer object.
|
||||||
|
*/
|
||||||
|
public function setIndent($indent)
|
||||||
|
{
|
||||||
|
$this->indent = (int)$indent;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the number of indents.
|
||||||
|
*
|
||||||
|
* @return int The number of times the indent string is repeated.
|
||||||
|
*/
|
||||||
|
public function getIndent()
|
||||||
|
{
|
||||||
|
return $this->indent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets whether or not the first line should be indented.
|
||||||
|
*
|
||||||
|
* Sets whether or not the first line (the one with the "/**") should be
|
||||||
|
* indented.
|
||||||
|
*
|
||||||
|
* @param bool $indentFirstLine The new value for this setting.
|
||||||
|
*
|
||||||
|
* @return $this This serializer object.
|
||||||
|
*/
|
||||||
|
public function setIsFirstLineIndented($indentFirstLine)
|
||||||
|
{
|
||||||
|
$this->isFirstLineIndented = (bool)$indentFirstLine;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets whether or not the first line should be indented.
|
||||||
|
*
|
||||||
|
* @return bool Whether or not the first line should be indented.
|
||||||
|
*/
|
||||||
|
public function isFirstLineIndented()
|
||||||
|
{
|
||||||
|
return $this->isFirstLineIndented;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the line length.
|
||||||
|
*
|
||||||
|
* Sets the length of each line in the serialization. Content will be
|
||||||
|
* wrapped within this limit.
|
||||||
|
*
|
||||||
|
* @param int|null $lineLength The length of each line. NULL to disable line
|
||||||
|
* wrapping altogether.
|
||||||
|
*
|
||||||
|
* @return $this This serializer object.
|
||||||
|
*/
|
||||||
|
public function setLineLength($lineLength)
|
||||||
|
{
|
||||||
|
$this->lineLength = null === $lineLength ? null : (int)$lineLength;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the line length.
|
||||||
|
*
|
||||||
|
* @return int|null The length of each line or NULL if line wrapping is
|
||||||
|
* disabled.
|
||||||
|
*/
|
||||||
|
public function getLineLength()
|
||||||
|
{
|
||||||
|
return $this->lineLength;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a DocBlock comment.
|
||||||
|
*
|
||||||
|
* @param DocBlock The DocBlock to serialize.
|
||||||
|
*
|
||||||
|
* @return string The serialized doc block.
|
||||||
|
*/
|
||||||
|
public function getDocComment(DocBlock $docblock)
|
||||||
|
{
|
||||||
|
$indent = str_repeat($this->indentString, $this->indent);
|
||||||
|
$firstIndent = $this->isFirstLineIndented ? $indent : '';
|
||||||
|
|
||||||
|
$text = $docblock->getText();
|
||||||
|
if ($this->lineLength) {
|
||||||
|
//3 === strlen(' * ')
|
||||||
|
$wrapLength = $this->lineLength - strlen($indent) - 3;
|
||||||
|
$text = wordwrap($text, $wrapLength);
|
||||||
|
}
|
||||||
|
$text = str_replace("\n", "\n{$indent} * ", $text);
|
||||||
|
|
||||||
|
$comment = "{$firstIndent}/**\n{$indent} * {$text}\n{$indent} *\n";
|
||||||
|
|
||||||
|
/** @var Tag $tag */
|
||||||
|
foreach ($docblock->getTags() as $tag) {
|
||||||
|
$tagText = (string) $tag;
|
||||||
|
if ($this->lineLength) {
|
||||||
|
$tagText = wordwrap($tagText, $wrapLength);
|
||||||
|
}
|
||||||
|
$tagText = str_replace("\n", "\n{$indent} * ", $tagText);
|
||||||
|
|
||||||
|
$comment .= "{$indent} * {$tagText}\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
$comment .= $indent . ' */';
|
||||||
|
|
||||||
|
return $comment;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -366,14 +366,12 @@ class Tag implements \Reflector
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the exported information (we should use the export static method
|
* Returns the tag as a serialized string
|
||||||
* BUT this throws an exception at this point).
|
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
* @codeCoverageIgnore Not yet implemented
|
|
||||||
*/
|
*/
|
||||||
public function __toString()
|
public function __toString()
|
||||||
{
|
{
|
||||||
return 'Not yet implemented';
|
return "@{$this->getName()} {$this->getContent()}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,18 +30,25 @@ class MethodTag extends ReturnTag
|
|||||||
/** @var string */
|
/** @var string */
|
||||||
protected $arguments = '';
|
protected $arguments = '';
|
||||||
|
|
||||||
|
/** @var bool */
|
||||||
|
protected $isStatic = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function getContent()
|
public function getContent()
|
||||||
{
|
{
|
||||||
if (null === $this->content) {
|
if (null === $this->content) {
|
||||||
$this->content = $this->type .
|
$this->content = '';
|
||||||
|
if ($this->isStatic) {
|
||||||
|
$this->content .= 'static ';
|
||||||
|
}
|
||||||
|
$this->content .= $this->type .
|
||||||
" {$this->method_name}({$this->arguments}) " .
|
" {$this->method_name}({$this->arguments}) " .
|
||||||
$this->description;
|
$this->description;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this;
|
return $this->content;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -51,15 +58,22 @@ class MethodTag extends ReturnTag
|
|||||||
{
|
{
|
||||||
Tag::setContent($content);
|
Tag::setContent($content);
|
||||||
// 1. none or more whitespace
|
// 1. none or more whitespace
|
||||||
// 2. optionally a word with underscores followed by whitespace : as
|
// 2. optionally the keyword "static" followed by whitespace
|
||||||
|
// 3. optionally a word with underscores followed by whitespace : as
|
||||||
// type for the return value
|
// type for the return value
|
||||||
// 3. then optionally a word with underscores followed by () and
|
// 4. then optionally a word with underscores followed by () and
|
||||||
// whitespace : as method name as used by phpDocumentor
|
// whitespace : as method name as used by phpDocumentor
|
||||||
// 4. then a word with underscores, followed by ( and any character
|
// 5. then a word with underscores, followed by ( and any character
|
||||||
// until a ) and whitespace : as method name with signature
|
// until a ) and whitespace : as method name with signature
|
||||||
// 5. any remaining text : as description
|
// 6. any remaining text : as description
|
||||||
if (preg_match(
|
if (preg_match(
|
||||||
'/^
|
'/^
|
||||||
|
# Static keyword
|
||||||
|
# Declates a static method ONLY if type is also present
|
||||||
|
(?:
|
||||||
|
(static)
|
||||||
|
\s+
|
||||||
|
)?
|
||||||
# Return type
|
# Return type
|
||||||
(?:
|
(?:
|
||||||
([\w\|_\\\\]+)
|
([\w\|_\\\\]+)
|
||||||
@@ -82,14 +96,23 @@ class MethodTag extends ReturnTag
|
|||||||
)) {
|
)) {
|
||||||
list(
|
list(
|
||||||
,
|
,
|
||||||
|
$static,
|
||||||
$this->type,
|
$this->type,
|
||||||
$this->method_name,
|
$this->method_name,
|
||||||
$this->arguments,
|
$this->arguments,
|
||||||
$this->description
|
$this->description
|
||||||
) = $matches;
|
) = $matches;
|
||||||
|
if ($static) {
|
||||||
|
if (!$this->type) {
|
||||||
|
$this->type = 'static';
|
||||||
|
} else {
|
||||||
|
$this->isStatic = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
if (!$this->type) {
|
if (!$this->type) {
|
||||||
$this->type = 'void';
|
$this->type = 'void';
|
||||||
}
|
}
|
||||||
|
}
|
||||||
$this->parsedDescription = null;
|
$this->parsedDescription = null;
|
||||||
} else {
|
} else {
|
||||||
echo date('c') . ' ERR (3): @method contained invalid contents: '
|
echo date('c') . ' ERR (3): @method contained invalid contents: '
|
||||||
@@ -160,4 +183,30 @@ class MethodTag extends ReturnTag
|
|||||||
|
|
||||||
return $arguments;
|
return $arguments;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether the method tag describes a static method or not.
|
||||||
|
*
|
||||||
|
* @return bool TRUE if the method declaration is for a static method, FALSE
|
||||||
|
* otherwise.
|
||||||
|
*/
|
||||||
|
public function isStatic()
|
||||||
|
{
|
||||||
|
return $this->isStatic;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets a new value for whether the method is static or not.
|
||||||
|
*
|
||||||
|
* @param bool $isStatic The new value to set.
|
||||||
|
*
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function setIsStatic($isStatic)
|
||||||
|
{
|
||||||
|
$this->isStatic = $isStatic;
|
||||||
|
|
||||||
|
$this->content = null;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ class ReturnTag extends Tag
|
|||||||
|
|
||||||
// any output is considered a type
|
// any output is considered a type
|
||||||
$this->type = $parts[0];
|
$this->type = $parts[0];
|
||||||
|
$this->types = null;
|
||||||
|
|
||||||
$this->setDescription(isset($parts[1]) ? $parts[1] : '');
|
$this->setDescription(isset($parts[1]) ? $parts[1] : '');
|
||||||
|
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ class MethodTagTest extends \PHPUnit_Framework_TestCase
|
|||||||
$valid,
|
$valid,
|
||||||
$expected_name,
|
$expected_name,
|
||||||
$expected_return,
|
$expected_return,
|
||||||
|
$expected_isStatic,
|
||||||
$paramCount,
|
$paramCount,
|
||||||
$description
|
$description
|
||||||
) {
|
) {
|
||||||
@@ -64,6 +65,7 @@ class MethodTagTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->assertEquals($expected_name, $tag->getMethodName());
|
$this->assertEquals($expected_name, $tag->getMethodName());
|
||||||
$this->assertEquals($expected_return, $tag->getType());
|
$this->assertEquals($expected_return, $tag->getType());
|
||||||
$this->assertEquals($description, $tag->getDescription());
|
$this->assertEquals($description, $tag->getDescription());
|
||||||
|
$this->assertEquals($expected_isStatic, $tag->isStatic());
|
||||||
$this->assertCount($paramCount, $tag->getArguments());
|
$this->assertCount($paramCount, $tag->getArguments());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,56 +74,72 @@ class MethodTagTest extends \PHPUnit_Framework_TestCase
|
|||||||
return array(
|
return array(
|
||||||
array(
|
array(
|
||||||
'foo',
|
'foo',
|
||||||
false, 'foo', '', 0, ''
|
false, 'foo', '', false, 0, ''
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'foo()',
|
'foo()',
|
||||||
true, 'foo', 'void', 0, ''
|
true, 'foo', 'void', false, 0, ''
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'foo() description',
|
'foo() description',
|
||||||
true, 'foo', 'void', 0, 'description'
|
true, 'foo', 'void', false, 0, 'description'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'int foo()',
|
'int foo()',
|
||||||
true, 'foo', 'int', 0, ''
|
true, 'foo', 'int', false, 0, ''
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'int foo() description',
|
'int foo() description',
|
||||||
true, 'foo', 'int', 0, 'description'
|
true, 'foo', 'int', false, 0, 'description'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'int foo($a, $b)',
|
'int foo($a, $b)',
|
||||||
true, 'foo', 'int', 2, ''
|
true, 'foo', 'int', false, 2, ''
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'int foo() foo(int $a, int $b)',
|
'int foo() foo(int $a, int $b)',
|
||||||
true, 'foo', 'int', 2, ''
|
true, 'foo', 'int', false, 2, ''
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'int foo(int $a, int $b)',
|
'int foo(int $a, int $b)',
|
||||||
true, 'foo', 'int', 2, ''
|
true, 'foo', 'int', false, 2, ''
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'null|int foo(int $a, int $b)',
|
'null|int foo(int $a, int $b)',
|
||||||
true, 'foo', 'null|int', 2, ''
|
true, 'foo', 'null|int', false, 2, ''
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'int foo(null|int $a, int $b)',
|
'int foo(null|int $a, int $b)',
|
||||||
true, 'foo', 'int', 2, ''
|
true, 'foo', 'int', false, 2, ''
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'\Exception foo() foo(Exception $a, Exception $b)',
|
'\Exception foo() foo(Exception $a, Exception $b)',
|
||||||
true, 'foo', '\Exception', 2, ''
|
true, 'foo', '\Exception', false, 2, ''
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'int foo() foo(Exception $a, Exception $b) description',
|
'int foo() foo(Exception $a, Exception $b) description',
|
||||||
true, 'foo', 'int', 2, 'description'
|
true, 'foo', 'int', false, 2, 'description'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'int foo() foo(\Exception $a, \Exception $b) description',
|
'int foo() foo(\Exception $a, \Exception $b) description',
|
||||||
true, 'foo', 'int', 2, 'description'
|
true, 'foo', 'int', false, 2, 'description'
|
||||||
),
|
),
|
||||||
|
array(
|
||||||
|
'void()',
|
||||||
|
true, 'void', 'void', false, 0, ''
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'static foo()',
|
||||||
|
true, 'foo', 'static', false, 0, ''
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'static void foo()',
|
||||||
|
true, 'foo', 'void', true, 0, ''
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'static static foo()',
|
||||||
|
true, 'foo', 'static', true, 0, ''
|
||||||
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,9 +34,9 @@ class DocBlockTest extends \PHPUnit_Framework_TestCase
|
|||||||
{
|
{
|
||||||
$fixture = <<<DOCBLOCK
|
$fixture = <<<DOCBLOCK
|
||||||
/**
|
/**
|
||||||
* This is a short description.
|
* This is a short description
|
||||||
*
|
*
|
||||||
* This is a long description.
|
* This is a long description
|
||||||
*
|
*
|
||||||
* @see \MyClass
|
* @see \MyClass
|
||||||
* @return void
|
* @return void
|
||||||
@@ -48,11 +48,11 @@ DOCBLOCK;
|
|||||||
new Location(2)
|
new Location(2)
|
||||||
);
|
);
|
||||||
$this->assertEquals(
|
$this->assertEquals(
|
||||||
'This is a short description.',
|
'This is a short description',
|
||||||
$object->getShortDescription()
|
$object->getShortDescription()
|
||||||
);
|
);
|
||||||
$this->assertEquals(
|
$this->assertEquals(
|
||||||
'This is a long description.',
|
'This is a long description',
|
||||||
$object->getLongDescription()->getContents()
|
$object->getLongDescription()->getContents()
|
||||||
);
|
);
|
||||||
$this->assertCount(2, $object->getTags());
|
$this->assertCount(2, $object->getTags());
|
||||||
@@ -142,7 +142,8 @@ DOCBLOCK;
|
|||||||
{
|
{
|
||||||
$fixture = <<<DOCBLOCK
|
$fixture = <<<DOCBLOCK
|
||||||
/**
|
/**
|
||||||
* This is a short description. This is a long description.
|
* This is a short description.
|
||||||
|
* This is a long description.
|
||||||
* This is a continuation of the long description.
|
* This is a continuation of the long description.
|
||||||
*/
|
*/
|
||||||
DOCBLOCK;
|
DOCBLOCK;
|
||||||
|
|||||||
Reference in New Issue
Block a user