Class yii\apidoc\models\FunctionDoc

Inheritanceyii\apidoc\models\FunctionDoc » yii\apidoc\models\BaseDoc » yii\base\BaseObject
Subclassesyii\apidoc\models\MethodDoc
Available since extension's version2.0
Source Code https://github.com/yiisoft/yii2-apidoc/blob/master/models/FunctionDoc.php

Represents API documentation information for a function.

Public Methods

Hide inherited methods

Method Description Defined By
__construct() yii\apidoc\models\FunctionDoc
extractFirstSentence() Extracts first sentence out of text yii\apidoc\models\BaseDoc
getFirstTag() Get the first tag of a given name yii\apidoc\models\BaseDoc
getPackageName() Returns the Composer package for this type, if it can be determined from $sourceFile. 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

$exceptions public property
public $exceptions = []
$isReturnByReference public property
public $isReturnByReference null
$params public property
$return public property
public $return null
$returnType public property
public $returnType null
$returnTypes public property
public $returnTypes null

Method Details

Hide inherited methods

__construct() public method

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

                public function __construct($reflector = null, $context = null, $config = [])
{
    parent::__construct($reflector, $context, $config);
    if ($reflector === null) {
        return;
    }
    $this->isReturnByReference = $reflector->isByRef();
    foreach ($reflector->getArguments() as $arg) {
        $arg = new ParamDoc($arg, $context, ['sourceFile' => $this->sourceFile]);
        $this->params[$arg->name] = $arg;
    }
    foreach ($this->tags as $i => $tag) {
        if ($tag instanceof ThrowsTag) {
            $this->exceptions[$tag->getType()] = $tag->getDescription();
            unset($this->tags[$i]);
        } elseif ($tag instanceof PropertyTag) {
            // ignore property tag
        } elseif ($tag instanceof ParamTag) {
            $paramName = $tag->getVariableName();
            if (!isset($this->params[$paramName]) && $context !== null) {
                $context->errors[] = [
                    'line' => $this->startLine,
                    'file' => $this->sourceFile,
                    'message' => "Undefined parameter documented: $paramName in {$this->name}().",
                ];
                continue;
            }
            $this->params[$paramName]->description = static::mbUcFirst($tag->getDescription());
            $this->params[$paramName]->type = $tag->getType();
            $this->params[$paramName]->types = $tag->getTypes();
            unset($this->tags[$i]);
        } elseif ($tag instanceof ReturnTag) {
            $this->returnType = $tag->getType();
            $this->returnTypes = $tag->getTypes();
            $this->return = static::mbUcFirst($tag->getDescription());
            unset($this->tags[$i]);
        }
    }
}

            
extractFirstSentence() public static method

Defined in: yii\apidoc\models\BaseDoc::extractFirstSentence()

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;
    }
    return $text;
}

            
getFirstTag() public method (available since version 2.0.5)

Defined in: yii\apidoc\models\BaseDoc::getFirstTag()

Get the first tag of a given name

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

Tag name.

return \phpDocumentor\Reflection\DocBlock\Tag|null

Tag instance, null if not found.

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

            
getPackageName() public method (available since version 2.1.3)

Defined in: yii\apidoc\models\BaseDoc::getPackageName()

Returns the Composer package for this type, if it can be determined from $sourceFile.

public string|null getPackageName ( )

                public function getPackageName()
{
    if (!$this->sourceFile || !preg_match('/\/vendor\/([\w\-]+\/[\w\-]+)/', $this->sourceFile, $match)) {
        return null;
    }
    return $match[1];
}

            
hasTag() public method

Defined in: yii\apidoc\models\BaseDoc::hasTag()

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)

Defined in: yii\apidoc\models\BaseDoc::mbUcFirst()

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

Defined in: yii\apidoc\models\BaseDoc::removeTag()

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]);
        }
    }
}