Class yii\apidoc\models\TypeDoc

Inheritanceyii\apidoc\models\TypeDoc » yii\apidoc\models\BaseDoc » yii\base\BaseObject
Implementsyii\base\Configurable
Subclassesyii\apidoc\models\ClassDoc, yii\apidoc\models\InterfaceDoc, yii\apidoc\models\TraitDoc
Available since 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<string, string> yii\apidoc\models\TypeDoc
$constants array<string, yii\apidoc\models\ConstDoc> 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<string, yii\apidoc\models\EventDoc> 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<string, yii\apidoc\models\PseudoTypeImportDoc> yii\apidoc\models\BaseDoc
$phpStanTypes array<string, yii\apidoc\models\PseudoTypeDoc> 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<string, yii\apidoc\models\PseudoTypeImportDoc> yii\apidoc\models\BaseDoc
$psalmTypes array<string, yii\apidoc\models\PseudoTypeDoc> 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<string, string> 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<string, \phpDocumentor\Reflection\DocBlock\Tags\Template> yii\apidoc\models\BaseDoc
$todos \phpDocumentor\Reflection\DocBlock\Tags\Generic[] yii\apidoc\models\BaseDoc

Public Methods

Hide inherited methods

Method Description Defined By
__call() Calls the named method which is not a class method. yii\base\BaseObject
__construct() yii\apidoc\models\TypeDoc
__get() Returns the value of an object property. yii\base\BaseObject
__isset() Checks if a property is set, i.e. defined and not null. yii\base\BaseObject
__set() Sets value of an object property. yii\base\BaseObject
__unset() Sets an object property to null. yii\base\BaseObject
canGetProperty() Returns a value indicating whether a property can be read. yii\base\BaseObject
canSetProperty() Returns a value indicating whether a property can be set. yii\base\BaseObject
className() Returns the fully qualified name of this class. yii\base\BaseObject
findSubject() Finds subject (method or property) by name yii\apidoc\models\TypeDoc
getFirstTag() Get the first tag of a given name yii\apidoc\models\BaseDoc
getNativeMethods() yii\apidoc\models\TypeDoc
getNativeProperties() yii\apidoc\models\TypeDoc
getPackageName() Returns the Composer package for this type, if it can be determined from $sourceFile. yii\apidoc\models\BaseDoc
getProtectedMethods() yii\apidoc\models\TypeDoc
getProtectedProperties() yii\apidoc\models\TypeDoc
getPublicMethods() yii\apidoc\models\TypeDoc
getPublicProperties() yii\apidoc\models\TypeDoc
hasMethod() Returns a value indicating whether a method is defined. yii\base\BaseObject
hasProperty() Returns a value indicating whether a property is defined. yii\base\BaseObject
hasTag() Checks if doc has tag of a given name yii\apidoc\models\BaseDoc
init() Initializes the object. yii\base\BaseObject
removeTag() Removes tag of a given name 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<string, string> $authors = []
$constants public property
$events public property
$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

__call() public method

Defined in: yii\base\BaseObject::__call()

Calls the named method which is not a class method.

Do not call this method directly as it is a PHP magic method that will be implicitly called when an unknown method is being invoked.

public __call( string $name, array $params ): mixed
$name string

The method name

$params array

Method parameters

return mixed

The method return value

throws yii\base\UnknownMethodException

when calling unknown method

                public function __call($name, $params)
{
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__construct() public method
public __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 = [] ): mixed
$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;
        }
    }
}

            
__get() public method

Defined in: yii\base\BaseObject::__get()

Returns the value of an object property.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing $value = $object->property;.

See also __set().

public __get( string $name ): mixed
$name string

The property name

return mixed

The property value

throws yii\base\UnknownPropertyException

if the property is not defined

throws yii\base\InvalidCallException

if the property is write-only

                public function __get($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter();
    } elseif (method_exists($this, 'set' . $name)) {
        throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}

            
__isset() public method

Defined in: yii\base\BaseObject::__isset()

Checks if a property is set, i.e. defined and not null.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing isset($object->property).

Note that if the property is not defined, false will be returned.

See also https://www.php.net/manual/en/function.isset.php.

public __isset( string $name ): boolean
$name string

The property name or the event name

return boolean

Whether the named property is set (not null).

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    return false;
}

            
__set() public method

Defined in: yii\base\BaseObject::__set()

Sets value of an object property.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing $object->property = $value;.

See also __get().

public __set( string $name, mixed $value ): mixed
$name string

The property name or the event name

$value mixed

The property value

throws yii\base\UnknownPropertyException

if the property is not defined

throws yii\base\InvalidCallException

if the property is read-only

                public function __set($name, $value)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter($value);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    } else {
        throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
    }
}

            
__unset() public method

Defined in: yii\base\BaseObject::__unset()

Sets an object property to null.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing unset($object->property).

Note that if the property is not defined, this method will do nothing. If the property is read-only, it will throw an exception.

See also https://www.php.net/manual/en/function.unset.php.

public __unset( string $name ): mixed
$name string

The property name

throws yii\base\InvalidCallException

if the property is read only.

                public function __unset($name)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter(null);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Unsetting read-only property: ' . get_class($this) . '::' . $name);
    }
}

            
canGetProperty() public method

Defined in: yii\base\BaseObject::canGetProperty()

Returns a value indicating whether a property can be read.

A property is readable if:

  • the class has a getter method associated with the specified name (in this case, property name is case-insensitive);
  • the class has a member variable with the specified name (when $checkVars is true);

See also canSetProperty().

public canGetProperty( string $name, boolean $checkVars = true ): boolean
$name string

The property name

$checkVars boolean

Whether to treat member variables as properties

return boolean

Whether the property can be read

                public function canGetProperty($name, $checkVars = true)
{
    return method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name);
}

            
canSetProperty() public method

Defined in: yii\base\BaseObject::canSetProperty()

Returns a value indicating whether a property can be set.

A property is writable if:

  • the class has a setter method associated with the specified name (in this case, property name is case-insensitive);
  • the class has a member variable with the specified name (when $checkVars is true);

See also canGetProperty().

public canSetProperty( string $name, boolean $checkVars = true ): boolean
$name string

The property name

$checkVars boolean

Whether to treat member variables as properties

return boolean

Whether the property can be written

                public function canSetProperty($name, $checkVars = true)
{
    return method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name);
}

            
className() public static method
Deprecated since 2.0.14. On PHP >=5.5, use ::class instead.

Defined in: yii\base\BaseObject::className()

Returns the fully qualified name of this class.

public static className( ): string
return string

The fully qualified name of this class.

                public static function className()
{
    return get_called_class();
}

            
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 findSubject( mixed $subjectName ): yii\apidoc\models\BaseDoc|null
$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 getFirstTag( string $name ): \phpDocumentor\Reflection\DocBlock\Tag|null
$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 getNativeMethods( ): yii\apidoc\models\MethodDoc[]

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

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

                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 getPackageName( ): string|null

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

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

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

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

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

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

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

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

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

            
hasMethod() public method

Defined in: yii\base\BaseObject::hasMethod()

Returns a value indicating whether a method is defined.

The default implementation is a call to php function method_exists(). You may override this method when you implemented the php magic method __call().

public hasMethod( string $name ): boolean
$name string

The method name

return boolean

Whether the method is defined

                public function hasMethod($name)
{
    return method_exists($this, $name);
}

            
hasProperty() public method

Defined in: yii\base\BaseObject::hasProperty()

Returns a value indicating whether a property is defined.

A property is defined if:

  • the class has a getter or setter method associated with the specified name (in this case, property name is case-insensitive);
  • the class has a member variable with the specified name (when $checkVars is true);

See also:

public hasProperty( string $name, boolean $checkVars = true ): boolean
$name string

The property name

$checkVars boolean

Whether to treat member variables as properties

return boolean

Whether the property is defined

                public function hasProperty($name, $checkVars = true)
{
    return $this->canGetProperty($name, $checkVars) || $this->canSetProperty($name, false);
}

            
hasTag() public method

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

Checks if doc has tag of a given name

public hasTag( string $name ): boolean
$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;
}

            
init() public method

Defined in: yii\base\BaseObject::init()

Initializes the object.

This method is invoked at the end of the constructor after the object is initialized with the given configuration.

public init( ): mixed

                public function init()
{
}

            
initProperties() protected method
protected initProperties( \phpDocumentor\Reflection\Php\Class_ $reflector, yii\apidoc\models\Context $context ): mixed
$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 isInheritdocTag( \phpDocumentor\Reflection\DocBlock\Tag $tag ): boolean
$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 removeTag( string $name ): mixed
$name string

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