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.

Public Properties

Hide inherited properties

Property Type Description Defined By
$authors array yii\apidoc\models\TypeDoc
$constants array yii\apidoc\models\TypeDoc
$deprecatedReason string|null yii\apidoc\models\BaseDoc
$deprecatedSince string|null yii\apidoc\models\BaseDoc
$description string|null yii\apidoc\models\BaseDoc
$endLine integer|null yii\apidoc\models\BaseDoc
$events array yii\apidoc\models\TypeDoc
$fullName string|null yii\apidoc\models\BaseDoc
$methods yii\apidoc\models\MethodDoc[] yii\apidoc\models\TypeDoc
$name string|null yii\apidoc\models\BaseDoc
$namespace string yii\apidoc\models\TypeDoc
$nativeMethods yii\apidoc\models\MethodDoc[] yii\apidoc\models\TypeDoc
$nativeProperties yii\apidoc\models\PropertyDoc[] yii\apidoc\models\TypeDoc
$packageName string|null yii\apidoc\models\BaseDoc
$parent yii\apidoc\models\BaseDoc
$phpDocContext \phpDocumentor\Reflection\Types\Context|null yii\apidoc\models\BaseDoc
$phpStanTypeImports array yii\apidoc\models\BaseDoc
$phpStanTypes array yii\apidoc\models\BaseDoc
$properties yii\apidoc\models\PropertyDoc[] yii\apidoc\models\TypeDoc
$protectedMethods yii\apidoc\models\MethodDoc[] yii\apidoc\models\TypeDoc
$protectedProperties yii\apidoc\models\PropertyDoc[] yii\apidoc\models\TypeDoc
$psalmTypeImports array yii\apidoc\models\BaseDoc
$psalmTypes array yii\apidoc\models\BaseDoc
$publicMethods yii\apidoc\models\MethodDoc[] yii\apidoc\models\TypeDoc
$publicProperties yii\apidoc\models\PropertyDoc[] yii\apidoc\models\TypeDoc
$shortDescription string|null yii\apidoc\models\BaseDoc
$since string|null Available since this version. yii\apidoc\models\BaseDoc
$sinceMap array A mapping where keys are versions and values are descriptions. yii\apidoc\models\BaseDoc
$sourceFile string|null yii\apidoc\models\BaseDoc
$startLine integer|null yii\apidoc\models\BaseDoc
$tags \phpDocumentor\Reflection\DocBlock\Tag[] yii\apidoc\models\BaseDoc
$templates array yii\apidoc\models\BaseDoc
$todos \phpDocumentor\Reflection\DocBlock\Tags\Generic[] yii\apidoc\models\BaseDoc

Constants

Hide inherited constants

Constant Value Description Defined By
INHERITDOC_TAG_NAME 'inheritdoc' yii\apidoc\models\BaseDoc
PHPSTAN_IMPORT_TYPE_ANNOTATION_NAME 'phpstan-import-type' yii\apidoc\models\BaseDoc
PHPSTAN_TYPE_ANNOTATION_NAME 'phpstan-type' yii\apidoc\models\BaseDoc
PSALM_IMPORT_TYPE_ANNOTATION_NAME 'psalm-import-type' yii\apidoc\models\BaseDoc
PSALM_TYPE_ANNOTATION_NAME 'psalm-type' yii\apidoc\models\BaseDoc
TODO_TAG_NAME 'todo' yii\apidoc\models\BaseDoc

Property Details

Hide inherited properties

$authors public property
public array $authors = []
$constants public property
public array $constants = []
$events public property
public array $events = []
$methods public property
$namespace public property
public string $namespace null
$nativeMethods public property
$nativeProperties public property
$properties public property
$protectedMethods public property
$protectedProperties public property
$publicMethods public property
$publicProperties public property

Method Details

Hide inherited methods

__construct() public method

public mixed __construct ( \phpDocumentor\Reflection\Php\Class_|\phpDocumentor\Reflection\Php\Trait_|\phpDocumentor\Reflection\Php\Interface_|null $reflector null, yii\apidoc\models\Context|null $context null, array $config = [] )
$reflector \phpDocumentor\Reflection\Php\Class_|\phpDocumentor\Reflection\Php\Trait_|\phpDocumentor\Reflection\Php\Interface_|null
$context yii\apidoc\models\Context|null
$config array

                public function __construct($reflector = null, $context = null, $config = [])
{
    parent::__construct(null, $reflector, $context, $config);
    $this->namespace = trim(StringHelper::dirname($this->name), '\\');
    if ($reflector === null) {
        return;
    }
    foreach ($this->tags as $i => $tag) {
        if ($tag instanceof Author) {
            $this->authors[$tag->getAuthorName()] = $tag->getEmail();
            unset($this->tags[$i]);
        }
        if ($tag instanceof Property || $tag instanceof PropertyRead || $tag instanceof PropertyWrite) {
            $descriptions = TextHelper::getDescriptionsByFullDescription((string) $tag->getDescription());
            $name = '$' . $tag->getVariableName();
            $property = new PropertyDoc($this, null, $context, [
                'sourceFile' => $this->sourceFile,
                'name' => $name,
                'fullName' => ltrim((string) $reflector->getFqsen(), '\\') . '::' . $name,
                'isStatic' => false,
                'visibility' => 'public',
                'definedBy' => $this->name,
                'type' => $tag->getType(),
                'shortDescription' => $descriptions['short'],
                'description' => $descriptions['detailed'],
            ]);
            $this->properties[$property->name] = $property;
        }
        if ($tag instanceof Method) {
            $descriptions = TextHelper::getDescriptionsByFullDescription((string) $tag->getDescription());
            $method = new MethodDoc($this, null, $context, [
                'sourceFile' => $this->sourceFile,
                'name' => $tag->getMethodName(),
                'fullName' => ltrim((string) $reflector->getFqsen(), '\\') . '::' . $tag->getMethodName(),
                'shortDescription' => $descriptions['short'],
                'description' => $descriptions['detailed'],
                'visibility' => 'public',
                'params' => [],
                'isStatic' => $tag->isStatic(),
                'return' => ' ',
                'returnType' => $tag->getReturnType(),
            ]);
            foreach ($tag->getParameters() as $parameter) {
                $method->params[] = new ParamDoc($method, null, $context, [
                    'sourceFile' => $this->sourceFile,
                    'name' => $parameter->getName(),
                    'type' => $parameter->getType(),
                ]);
            }
            $method->definedBy = $this->name;
            $this->methods[$method->name] = $method;
        }
    }
    $this->initProperties($reflector, $context);
    foreach ($reflector->getMethods() as $methodReflector) {
        if ($methodReflector->getDocBlock() && $methodReflector->getDocBlock()->hasTag('internal')) {
            continue;
        }
        if ((string) $methodReflector->getVisibility() !== 'private') {
            $method = new MethodDoc($this, $methodReflector, $context, ['sourceFile' => $this->sourceFile]);
            $method->definedBy = $this->name;
            $this->methods[$method->name] = $method;
        }
    }
    foreach ($reflector->getConstants() as $constantReflector) {
        $docBlock = $constantReflector->getDocBlock();
        if ($docBlock !== null && count($docBlock->getTagsByName('event')) > 0) {
            $event = new EventDoc($this, $constantReflector, null, [], $docBlock);
            $event->definedBy = $this->name;
            $this->events[$event->name] = $event;
        } else {
            $constant = new ConstDoc($this, $constantReflector);
            $constant->definedBy = $this->name;
            $this->constants[$constant->name] = $constant;
        }
    }
}

            
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 yii\apidoc\models\BaseDoc|null findSubject ( mixed $subjectName )
$subjectName mixed

                public function findSubject($subjectName)
{
    if (empty($subjectName)) {
        return null;
    }
    $subjectName = ltrim(str_replace($this->namespace, '', $subjectName), '\\');
    if ($subjectName[0] !== '$') {
        foreach ($this->methods as $name => $method) {
            if (rtrim($subjectName, '()') == $name) {
                return $method;
            }
        }
    }
    if (str_ends_with($subjectName, '()')) {
        return null;
    }
    if ($this->properties === null) {
        return null;
    }
    foreach ($this->properties as $name => $property) {
        if (ltrim($subjectName, '$') == ltrim((string) $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 ( string $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 ( string $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;
}

            
initProperties() protected method

protected mixed initProperties ( \phpDocumentor\Reflection\Php\Class_ $reflector, yii\apidoc\models\Context $context )
$reflector \phpDocumentor\Reflection\Php\Class_
$context yii\apidoc\models\Context

                protected function initProperties($reflector, $context)
{
    foreach ($reflector->getProperties() as $propertyReflector) {
        if ($propertyReflector->getDocBlock() && $propertyReflector->getDocBlock()->hasTag('internal')) {
            continue;
        }
        if ((string) $propertyReflector->getVisibility() !== 'private') {
            $property = new PropertyDoc($this, $propertyReflector, $context, ['sourceFile' => $this->sourceFile]);
            $property->definedBy = $this->name;
            $this->properties[$property->name] = $property;
        }
    }
}

            
isInheritdocTag() protected method
protected boolean isInheritdocTag ( \phpDocumentor\Reflection\DocBlock\Tag $tag )
$tag \phpDocumentor\Reflection\DocBlock\Tag

                protected function isInheritdocTag(Tag $tag): bool
{
    return $tag instanceof Generic && $tag->getName() === self::INHERITDOC_TAG_NAME;
}

            
removeTag() public method

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

Removes tag of a given name

public mixed removeTag ( string $name )
$name string

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