Class yii\apidoc\models\BaseDoc

Inheritanceyii\apidoc\models\BaseDoc » yii\base\Object
Subclassesyii\apidoc\models\ClassDoc, yii\apidoc\models\ConstDoc, yii\apidoc\models\EventDoc, yii\apidoc\models\FunctionDoc, yii\apidoc\models\InterfaceDoc, yii\apidoc\models\MethodDoc, yii\apidoc\models\PropertyDoc, yii\apidoc\models\TraitDoc, yii\apidoc\models\TypeDoc
Available since extension's version2.0
Source Code https://github.com/yiisoft/yii2-apidoc/blob/master/models/BaseDoc.php

Base class for API documentation information.

Public Methods

Hide inherited methods

Method Description Defined By
__construct() yii\apidoc\models\BaseDoc
extractFirstSentence() Extracts first sentence out of text yii\apidoc\models\BaseDoc
getFirstTag() Get the first tag of a given name yii\apidoc\models\BaseDoc
hasTag() Checks if doc has tag of a given name yii\apidoc\models\BaseDoc
removeTag() Removes tag of a given name yii\apidoc\models\BaseDoc

Protected Methods

Hide inherited methods

Method Description Defined By
mbUcFirst() Multibyte version of ucfirst() yii\apidoc\models\BaseDoc

Property Details

Hide inherited properties

$deprecatedReason public property
public $deprecatedReason null
$deprecatedSince public property
public $deprecatedSince null
$description public property
public $description null
$endLine public property
public $endLine null
$name public property
public $name null
$phpDocContext public property
public \phpDocumentor\Reflection\DocBlock\Context $phpDocContext null
$shortDescription public property
public $shortDescription null
$since public property
public $since null
$sourceFile public property
public $sourceFile null
$startLine public property
public $startLine null
$tags public property
public \phpDocumentor\Reflection\DocBlock\Tag[] $tags = []

Method Details

Hide inherited methods

__construct() public method

public void __construct ( $reflector null, $context null, $config = [] )
$reflector \phpDocumentor\Reflection\BaseReflector
$context yii\apidoc\models\Context
$config array

                public function __construct($reflector = null, $context = null, $config = [])
{
    parent::__construct($config);
    if ($reflector === null) {
        return;
    }
    // base properties
    $this->name = ltrim($reflector->getName(), '\\');
    $this->startLine = $reflector->getNode()->getAttribute('startLine');
    $this->endLine = $reflector->getNode()->getAttribute('endLine');
    $docblock = $reflector->getDocBlock();
    if ($docblock !== null) {
        $this->shortDescription = static::mbUcFirst($docblock->getShortDescription());
        if (empty($this->shortDescription) && !($this instanceof PropertyDoc) && $context !== null && $docblock->getTagsByName('inheritdoc') === null) {
            $context->warnings[] = [
                'line' => $this->startLine,
                'file' => $this->sourceFile,
                'message' => "No short description for " . substr(StringHelper::basename(get_class($this)), 0, -3) . " '{$this->name}'",
            ];
        }
        $this->description = $docblock->getLongDescription()->getContents();
        $this->phpDocContext = $docblock->getContext();
        $this->tags = $docblock->getTags();
        foreach ($this->tags as $i => $tag) {
            if ($tag instanceof SinceTag) {
                $this->since = $tag->getVersion();
                unset($this->tags[$i]);
            } elseif ($tag instanceof DeprecatedTag) {
                $this->deprecatedSince = $tag->getVersion();
                $this->deprecatedReason = $tag->getDescription();
                unset($this->tags[$i]);
            }
        }
    } elseif ($context !== null) {
        $context->warnings[] = [
            'line' => $this->startLine,
            'file' => $this->sourceFile,
            'message' => "No docblock for element '{$this->name}'",
        ];
    }
}

            
extractFirstSentence() public static method

Extracts first sentence out of text

public static string extractFirstSentence ( $text )
$text string

                public static function extractFirstSentence($text)
{
    if (mb_strlen($text, 'utf-8') > 4 && ($pos = mb_strpos($text, '.', 4, 'utf-8')) !== false) {
        $sentence = mb_substr($text, 0, $pos + 1, 'utf-8');
        if (mb_strlen($text, 'utf-8') >= $pos + 3) {
            $abbrev = mb_substr($text, $pos - 1, 4, 'utf-8');
            if ($abbrev === 'e.g.' || $abbrev === 'i.e.') { // do not break sentence after abbreviation
                $sentence .= static::extractFirstSentence(mb_substr($text, $pos + 1, mb_strlen($text, 'utf-8'), 'utf-8'));
            }
        }
        return $sentence;
    } else {
        return $text;
    }
}

            
getFirstTag() public method (available since version 2.0.5)

Get the first tag of a given name

public \phpDocumentor\Reflection\DocBlock\Tag getFirstTag ( $name )
$name string

                public function getFirstTag($name)
{
    foreach ($this->tags as $i => $tag) {
        if (strtolower($tag->getName()) == $name) {
            return $this->tags[$i];
        }
    }
}

            
hasTag() public method

Checks if doc has tag of a given name

public boolean hasTag ( $name )
$name string

Tag name

return boolean

If doc has tag of a given name

                public function hasTag($name)
{
    foreach ($this->tags as $tag) {
        if (strtolower($tag->getName()) == $name) {
            return true;
        }
    }
    return false;
}

            
mbUcFirst() protected static method (available since version 2.0.6)

Multibyte version of ucfirst()

protected static void mbUcFirst ( $string )
$string

                protected static function mbUcFirst($string)
{
    $firstChar = mb_strtoupper(mb_substr($string, 0, 1, 'utf-8'), 'utf-8');
    return $firstChar . mb_substr($string, 1, mb_strlen($string, 'utf-8'), 'utf-8');
}

            
removeTag() public method

Removes tag of a given name

public void removeTag ( $name )
$name string

                public function removeTag($name)
{
    foreach ($this->tags as $i => $tag) {
        if (strtolower($tag->getName()) == $name) {
            unset($this->tags[$i]);
        }
    }
}