123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <?php
- /**
- * @link http://www.yiiframework.com/
- * @copyright Copyright (c) 2008 Yii Software LLC
- * @license http://www.yiiframework.com/license/
- */
- namespace yii\apidoc\models;
- use phpDocumentor\Reflection\DocBlock\Tag\VarTag;
- use yii\apidoc\helpers\PrettyPrinter;
- /**
- * Represents API documentation information for a `property`.
- *
- * @property bool $isReadOnly If property is read only. This property is read-only.
- * @property bool $isWriteOnly If property is write only. This property is read-only.
- *
- * @author Carsten Brandt <mail@cebe.cc>
- * @since 2.0
- */
- class PropertyDoc extends BaseDoc
- {
- public $visibility;
- public $isStatic;
- public $type;
- public $types;
- public $defaultValue;
- // will be set by creating class
- public $getter;
- public $setter;
- // will be set by creating class
- public $definedBy;
- /**
- * @return bool if property is read only
- */
- public function getIsReadOnly()
- {
- return $this->getter !== null && $this->setter === null;
- }
- /**
- * @return bool if property is write only
- */
- public function getIsWriteOnly()
- {
- return $this->getter === null && $this->setter !== null;
- }
- /**
- * @param \phpDocumentor\Reflection\ClassReflector\PropertyReflector $reflector
- * @param Context $context
- * @param array $config
- */
- public function __construct($reflector = null, $context = null, $config = [])
- {
- parent::__construct($reflector, $context, $config);
- if ($reflector === null) {
- return;
- }
- $this->visibility = $reflector->getVisibility();
- $this->isStatic = $reflector->isStatic();
- // bypass $reflector->getDefault() for short array syntax
- if ($reflector->getNode()->default) {
- $this->defaultValue = PrettyPrinter::getRepresentationOfValue($reflector->getNode()->default);
- }
- $hasInheritdoc = false;
- foreach ($this->tags as $tag) {
- if ($tag->getName() === 'inheritdoc') {
- $hasInheritdoc = true;
- }
- if ($tag instanceof VarTag) {
- $this->type = $tag->getType();
- $this->types = $tag->getTypes();
- $this->description = static::mbUcFirst($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}'",
- ];
- }
- }
- }
|