mirror of
https://github.com/barryvdh/ReflectionDocBlock.git
synced 2026-08-18 10:07:12 +00:00
Merge pull request #10 from boenrobot/author
Introduced role, description and space separated URIs to the author tag.
This commit is contained in:
@@ -18,7 +18,7 @@ use phpDocumentor\Reflection\DocBlock\Tag;
|
||||
/**
|
||||
* Reflection class for an @author tag in a Docblock.
|
||||
*
|
||||
* @author Mike van Riel <mike.vanriel@naenius.com>
|
||||
* @author Vasil Rangelov <boen.robot@gmail.com>
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT
|
||||
* @link http://phpdoc.org
|
||||
*/
|
||||
@@ -27,8 +27,11 @@ class AuthorTag extends Tag
|
||||
/** @var string The name of the author */
|
||||
protected $name = '';
|
||||
|
||||
/** @var string The email of the author */
|
||||
protected $email = '';
|
||||
/** @var array Array of URIs belonging to the author, including email */
|
||||
protected $uris = array();
|
||||
|
||||
/** @var string The role of the author */
|
||||
protected $role = '';
|
||||
|
||||
/**
|
||||
* Parses a tag and populates the member variables.
|
||||
@@ -41,14 +44,32 @@ class AuthorTag extends Tag
|
||||
{
|
||||
parent::__construct($type, $content, $docblock);
|
||||
if (preg_match(
|
||||
'/^([^\<]*)(\<([^\>]*)\>)?$/',
|
||||
'/^
|
||||
# Name
|
||||
([^\<]*)
|
||||
(?:
|
||||
# URIs
|
||||
\<([^>]*)\>\s*
|
||||
# Role
|
||||
(?:
|
||||
\(([^\)]*)\)
|
||||
)?
|
||||
# Description
|
||||
(.*)
|
||||
)?
|
||||
$/sux',
|
||||
$this->description,
|
||||
$matches
|
||||
)) {
|
||||
$this->name = trim($matches[1]);
|
||||
if (isset($matches[3])) {
|
||||
$this->email = trim($matches[3]);
|
||||
$this->name = rtrim($matches[1]);
|
||||
if (isset($matches[2])) {
|
||||
$matches[2] = trim($matches[2]);
|
||||
if ('' !== $matches[2]) {
|
||||
$this->uris = preg_split('/\s+/u', $matches[2]);
|
||||
}
|
||||
}
|
||||
$this->role = isset($matches[3]) ? trim($matches[3]) : '';
|
||||
$this->description = isset($matches[4]) ? trim($matches[4]) : '';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,12 +84,22 @@ class AuthorTag extends Tag
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the author's email.
|
||||
* Gets the author's URIs.
|
||||
*
|
||||
* @return string The author's email.
|
||||
* @return array Array of URIs belonging to the author, including email.
|
||||
*/
|
||||
public function getAuthorEmail()
|
||||
public function getAuthorURIs()
|
||||
{
|
||||
return $this->email;
|
||||
return $this->uris;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the author's role.
|
||||
*
|
||||
* @return string The role of the author.
|
||||
*/
|
||||
public function getAuthorRole()
|
||||
{
|
||||
return $this->role;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user