# Class yii\apidoc\models\PropertyDoc

Inheritance | yii\apidoc\models\PropertyDoc » yii\apidoc\models\BaseDoc » yii\base\BaseObject
Implements | yii\base\Configurable
Available since version | 2.0
Source Code | https://github.com/yiisoft/yii2-apidoc/blob/master/models/PropertyDoc.php

Represents API documentation information for a `property`.

## Public Properties

Hide inherited properties

Property | Type | Description | Defined By
--- | --- | --- | ---
$defaultValue |  |  | yii\apidoc\models\PropertyDoc
$definedBy |  |  | yii\apidoc\models\PropertyDoc
$deprecatedReason |  |  | yii\apidoc\models\BaseDoc
$deprecatedSince |  |  | yii\apidoc\models\BaseDoc
$description |  |  | yii\apidoc\models\BaseDoc
$endLine |  |  | yii\apidoc\models\BaseDoc
$fullName |  |  | yii\apidoc\models\BaseDoc
$getter |  |  | yii\apidoc\models\PropertyDoc
$isReadOnly | boolean | If property is read only. | yii\apidoc\models\PropertyDoc
$isStatic |  |  | yii\apidoc\models\PropertyDoc
$isWriteOnly | boolean | If property is write only. | yii\apidoc\models\PropertyDoc
$name |  |  | yii\apidoc\models\BaseDoc
$packageName | string|null |  | yii\apidoc\models\BaseDoc
$phpDocContext | \phpDocumentor\Reflection\Types\Context |  | yii\apidoc\models\BaseDoc
$setter |  |  | yii\apidoc\models\PropertyDoc
$shortDescription |  |  | 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 |  |  | yii\apidoc\models\BaseDoc
$startLine |  |  | yii\apidoc\models\BaseDoc
$tags | \phpDocumentor\Reflection\DocBlock\Tag[] |  | yii\apidoc\models\BaseDoc
$todos | \phpDocumentor\Reflection\DocBlock\Tags\Generic[] |  | yii\apidoc\models\BaseDoc
$type |  |  | yii\apidoc\models\PropertyDoc
$types |  |  | yii\apidoc\models\PropertyDoc
$visibility |  |  | yii\apidoc\models\PropertyDoc

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

## Protected Methods

Hide inherited methods

Method | Description | Defined By
--- | --- | ---
convertInlineLinks() | Converts inline links to unified format. | yii\apidoc\models\BaseDoc
mbUcFirst() | Multibyte version of ucfirst() | yii\apidoc\models\BaseDoc
splitTypes() |  | yii\apidoc\models\BaseDoc

## Property Details

Hide inherited properties

$defaultValue public property
public $defaultValue = null
$definedBy public property
public $definedBy = null
$getter public property
public $getter = null
$isReadOnly public property

If property is read only.

public boolean $isReadOnly = null
$isStatic public property
public $isStatic = null
$isWriteOnly public property

If property is write only.

public boolean $isWriteOnly = null
$setter public property
public $setter = null
$type public property
public $type = null
$types public property
public $types = null
$visibility public property
public $visibility = null

## 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 mixed __call ( $name, $params )
$name | string | The method name
$params | array | Method parameters
return | mixed | The method return value
throws | yii\base\UnknownMethodException | when calling unknown method

Source code

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

__construct() public method

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

Source code

                    public function __construct($reflector = null, $context = null, $config = [])
    {
        parent::__construct($reflector, $context, $config);
        if ($reflector === null) {
            return;
        }
        $this->visibility = (string) $reflector->getVisibility();
        $this->isStatic = $reflector->isStatic();
        $this->defaultValue = $reflector->getDefault();
        $hasInheritdoc = false;
        foreach ($this->tags as $tag) {
            if ($tag->getName() === 'inheritdoc') {
                $hasInheritdoc = true;
            }
            if ($tag instanceof Var_) {
                $this->type = (string) $tag->getType();
                $this->types = $this->splitTypes($tag->getType());
                $this->description = StringHelper::mb_ucfirst($tag->getDescription());
                $this->shortDescription = BaseDoc::extractFirstSentence($this->description);
            }
        }
        if (empty($this->shortDescription) && $context !== null && !$hasInheritdoc) {
            $context->warnings[] = [
                'line' => $this->startLine,
                'file' => $this->sourceFile,
                'message' => "No short description for element '{$this->name}'",
            ];
        }
    }

__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 mixed __get ( $name )
$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

Source code

                    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 boolean __isset ( $name )
$name | string | The property name or the event name
return | boolean | Whether the named property is set (not null).

Source code

                    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 void __set ( $name, $value )
$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

Source code

                    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 void __unset ( $name )
$name | string | The property name
throws | yii\base\InvalidCallException | if the property is read only.

Source code

                    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 boolean canGetProperty ( $name, $checkVars = true )
$name | string | The property name
$checkVars | boolean | Whether to treat member variables as properties
return | boolean | Whether the property can be read

Source code

                    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 boolean canSetProperty ( $name, $checkVars = true )
$name | string | The property name
$checkVars | boolean | Whether to treat member variables as properties
return | boolean | Whether the property can be written

Source code

                    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 string className ( )
return | string | The fully qualified name of this class.

Source code

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

convertInlineLinks() protected static method

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

Converts inline links to unified format.

See also yii\apidoc\helpers\ApiMarkdownTrait::parseApiLinks().

protected static string|null convertInlineLinks ( $content )
$content | string|null |

Source code

                    protected static function convertInlineLinks($content)
    {
        if (!$content) {
            return $content;
        }
        return preg_replace('/{@link\s*([\w\d\\\\():$]+(?:\|[^}]*)?)}/', "[[$1]]", $content);
    }

extractFirstSentence() public static method

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

Extracts first sentence out of text.

public static string extractFirstSentence ( $text, $prevText = '' )
$text | string |
$prevText | string |

Source code

                    public static function extractFirstSentence($text, $prevText = '')
    {
        $text = str_replace(["\r\n", "\n"], ' ', $text);
        $length = mb_strlen($text, 'utf-8');
        if ($length > 4 && ($pos = mb_strpos($text, '. ', 4, 'utf-8')) !== false) {
            $sentence = mb_substr($text, 0, $pos + 1, 'utf-8');
            $prevText  .= $sentence;
            if ($length >= $pos + 2) {
                $abbrev = mb_substr($text, $pos - 3, 4, 'utf-8');
                // do not break sentence after abbreviation
                if ($abbrev === 'e.g.' ||
                    $abbrev === 'i.e.' ||
                    mb_substr_count($prevText, '`', 'utf-8') % 2 === 1
                ) {
                    $sentence .= static::extractFirstSentence(
                        mb_substr($text, $pos + 1, $length, 'utf-8'),
                        $prevText
                    );
                }
            }
            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.

Source code

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

getIsReadOnly() public method

public boolean getIsReadOnly ( )
return | boolean | If property is read only

Source code

                    public function getIsReadOnly()
    {
        return $this->getter !== null && $this->setter === null;
    }

getIsWriteOnly() public method

public boolean getIsWriteOnly ( )
return | boolean | If property is write only

Source code

                    public function getIsWriteOnly()
    {
        return $this->getter === null && $this->setter !== 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 ( )

Source code

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

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 boolean hasMethod ( $name )
$name | string | The method name
return | boolean | Whether the method is defined

Source code

                    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:

- canGetProperty()
- canSetProperty()

public boolean hasProperty ( $name, $checkVars = true )
$name | string | The property name
$checkVars | boolean | Whether to treat member variables as properties
return | boolean | Whether the property is defined

Source code

                    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 boolean hasTag ( $name )
$name | string | Tag name
return | boolean | If doc has tag of a given name

Source code

                    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 void init ( )

Source code

                    public function init()
    {
    }

mbUcFirst() protected static method (available since version 2.0.6)
Deprecated Use \yii\helpers\StringHelper::mb_ucfirst() instead

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

Multibyte version of ucfirst()

protected static void mbUcFirst ( $string )
$string |  |

Source code

                    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 |

Source code

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

splitTypes() protected method

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

protected string[] splitTypes ( $aggregatedType )
$aggregatedType | \phpDocumentor\Reflection\Php\Factory\Type|null |

Source code

                    protected function splitTypes($aggregatedType)
    {
        if ($aggregatedType === null) {
            return [];
        }
        $types = [];
        foreach ($aggregatedType as $type) {
            $types[] = (string) $type;
        }
        return $types ?: [(string) $aggregatedType];
    }