Class yii\apidoc\models\TypeDoc

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

Base class for API documentation information for classes, interfaces and traits.

Protected Methods

Hide inherited methods

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

Property Details

Hide inherited properties

$authors public property
public $authors = []
$methods public property
$namespace public property
public $namespace null
$nativeMethods public property

This property is read-only.

$nativeProperties public property

This property is read-only.

$properties public property
$protectedMethods public property

This property is read-only.

$protectedProperties public property

This property is read-only.

$publicMethods public property

This property is read-only.

$publicProperties public property

This property is read-only.

Method Details

Hide inherited methods

__construct() public method

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

                public function __construct($reflector = null, $context = null, $config = [])
{
    parent::__construct($reflector, $context, $config);
    $this->namespace = trim(StringHelper::dirname($this->name), '\\');
    if ($reflector === null) {
        return;
    }
    foreach ($this->tags as $i => $tag) {
        if ($tag instanceof AuthorTag) {
            $this->authors[$tag->getAuthorName()] = $tag->getAuthorEmail();
            unset($this->tags[$i]);
        }
        if ($tag instanceof PropertyTag) {
            $property = new PropertyDoc(null, $context, [
                'sourceFile' => $this->sourceFile,
                'name' => $tag->getVariableName(),
                'isStatic' => false,
                'visibility' => 'public',
                'definedBy' => $this->name,
                'type' => $tag->getType(),
                'types' => $tag->getTypes(),
                'shortDescription' => $tag->getDescription(),
                'description' => $tag->getDescription(),
            ]);
            $this->properties[$property->name] = $property;
        }
        if ($tag instanceof MethodTag) {
            $params = [];
            foreach ($tag->getArguments() as $tagArgument) {
                $argumentType = null;
                if (count($tagArgument) === 2) {
                    list ($argumentType, $argumentName) = $tagArgument;
                } else {
                    $argumentName = $tagArgument[0];
                }
                $params[] = new ParamDoc(null, $context, [
                    'sourceFile' => $this->sourceFile,
                    'name' => $argumentName,
                    'typeHint' => $argumentType,
                    'type' => $argumentType,
                    'types' => [],
                ]);
            }
            $method = new MethodDoc(null, $context, [
                'sourceFile' => $this->sourceFile,
                'name' => $tag->getMethodName(),
                'shortDescription' => $tag->getDescription(),
                'description' => $tag->getDescription(),
                'visibility' => 'public',
                'params' => $params,
                'isStatic' => $tag->isStatic(),
                'return' => ' ',
                'returnType' => $tag->getType(),
                'returnTypes' => $tag->getTypes(),
            ]);
            $method->definedBy = $this->name;
            $this->methods[$method->name] = $method;
        }
    }
    foreach ($reflector->getProperties() as $propertyReflector) {
        if ($propertyReflector->getVisibility() !== 'private') {
            $property = new PropertyDoc($propertyReflector, $context, ['sourceFile' => $this->sourceFile]);
            $property->definedBy = $this->name;
            $this->properties[$property->name] = $property;
        }
    }
    foreach ($reflector->getMethods() as $methodReflector) {
        if ($methodReflector->getVisibility() !== 'private') {
            $method = new MethodDoc($methodReflector, $context, ['sourceFile' => $this->sourceFile]);
            $method->definedBy = $this->name;
            $this->methods[$method->name] = $method;
        }
    }
}

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

            
findSubject() public method

Finds subject (method or property) by name

If there is a property with the same as a method, the method will be returned if the name is not stated explicitly by prefixing with $.

Example for method attributes() and property $attributes which both may exist:

  • $subjectName = '$attributes' finds a property or nothing.
  • $subjectName = 'attributes()' finds a method or nothing.
  • $subjectName = 'attributes' finds the method if it exists, if not it will find the property.
public null|yii\apidoc\models\MethodDoc|yii\apidoc\models\PropertyDoc findSubject ( $subjectName )
$subjectName

                public function findSubject($subjectName)
{
    if (empty($subjectName)) {
        return null;
    }
    if ($subjectName[0] !== '$') {
        foreach ($this->methods as $name => $method) {
            if (rtrim($subjectName, '()') == $name) {
                return $method;
            }
        }
    }
    if (substr_compare($subjectName, '()', -2, 2) === 0) {
        return null;
    }
    if ($this->properties === null) {
        return null;
    }
    foreach ($this->properties as $name => $property) {
        if (ltrim($subjectName, '$') == ltrim($name, '$')) {
            return $property;
        }
    }
    return null;
}

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

            
getNativeMethods() public method

public yii\apidoc\models\MethodDoc[] getNativeMethods ( )

                public function getNativeMethods()
{
    return $this->getFilteredMethods(null, $this->name);
}

            
getNativeProperties() public method

public yii\apidoc\models\PropertyDoc[] getNativeProperties ( )

                public function getNativeProperties()
{
    return $this->getFilteredProperties(null, $this->name);
}

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

            
getProtectedMethods() public method

public yii\apidoc\models\MethodDoc[] getProtectedMethods ( )

                public function getProtectedMethods()
{
    return $this->getFilteredMethods('protected');
}

            
getProtectedProperties() public method

public yii\apidoc\models\PropertyDoc[] getProtectedProperties ( )

                public function getProtectedProperties()
{
    return $this->getFilteredProperties('protected');
}

            
getPublicMethods() public method

public yii\apidoc\models\MethodDoc[] getPublicMethods ( )

                public function getPublicMethods()
{
    return $this->getFilteredMethods('public');
}

            
getPublicProperties() public method

public yii\apidoc\models\PropertyDoc[] getPublicProperties ( )

                public function getPublicProperties()
{
    return $this->getFilteredProperties('public');
}

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