ParamDoc.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. /**
  3. * @link http://www.yiiframework.com/
  4. * @copyright Copyright (c) 2008 Yii Software LLC
  5. * @license http://www.yiiframework.com/license/
  6. */
  7. namespace yii\apidoc\models;
  8. use yii\apidoc\helpers\PrettyPrinter;
  9. use yii\base\Object;
  10. /**
  11. * Represents API documentation information for a [[FunctionDoc|function]] or [[MethodDoc|method]] `param`.
  12. *
  13. * @author Carsten Brandt <mail@cebe.cc>
  14. * @since 2.0
  15. */
  16. class ParamDoc extends Object
  17. {
  18. public $name;
  19. public $typeHint;
  20. public $isOptional;
  21. public $defaultValue;
  22. public $isPassedByReference;
  23. // will be set by creating class
  24. public $description;
  25. public $type;
  26. public $types;
  27. public $sourceFile;
  28. /**
  29. * @param \phpDocumentor\Reflection\FunctionReflector\ArgumentReflector $reflector
  30. * @param Context $context
  31. * @param array $config
  32. */
  33. public function __construct($reflector = null, $context = null, $config = [])
  34. {
  35. parent::__construct($config);
  36. if ($reflector === null) {
  37. return;
  38. }
  39. $this->name = $reflector->getName();
  40. $this->typeHint = $reflector->getType();
  41. $this->isOptional = $reflector->getDefault() !== null;
  42. // bypass $reflector->getDefault() for short array syntax
  43. if ($reflector->getNode()->default) {
  44. $this->defaultValue = PrettyPrinter::getRepresentationOfValue($reflector->getNode()->default);
  45. }
  46. $this->isPassedByReference = $reflector->isByRef();
  47. }
  48. }