Как документировать свойства класса в PHP 5 с помощью phpDocumentor - PullRequest
26 голосов
/ 03 февраля 2010

Примите во внимание следующий класс PHP 5:

class SomeClass
{
    //I want to document this property...
    private $foo;


    function __construct()
    {

    }

    public function SetFoo($value)
    {
        $this->foo = $value;
    }

    public function GetFoo()
    {
        return $this->foo;
    }
}

Как в phpDocumentor я буду документировать свойство $ foo? Я даже не уверен, что это нужно документировать, но я хотел бы знать, как, если, если нужно ...

Я знаю, как документировать SetFoo () и GetFoo (), я просто не уверен насчет частного свойства (переменной?).

Спасибо!

Ответы [ 4 ]

40 голосов
/ 03 февраля 2010
/**
 * This is what the variable does. The var line contains the type stored in this variable.
 * @var string
 */
private $foo;
17 голосов
/ 03 февраля 2010

Я бы обычно использовал хотя бы тег @var, чтобы указать тип переменной.

Например:

/**
 * Some blah blah about what this is useful for
 * @var MyClass $foo
 */


Это именно то, что сделано, например, Zend Framework; см Zend_Layout (цитата) :

class Zend_Layout
{
    /**
     * Placeholder container for layout variables
     * @var Zend_View_Helper_Placeholder_Container
     */
    protected $_container;

    /**
     * Key used to store content from 'default' named response segment
     * @var string
     */
    protected $_contentKey = 'content';


Примечание: тег @access был полезен в PHP 4 (когда не было public / protected / private) , но я никогда не использую его, когда документирую код, написанный на PHP 5: код, использующий ключевые слова видимости, самодокументируется.

0 голосов
/ 24 марта 2016
/**
 * docstring
 */
private $foo;

Важное примечание: должно быть две звездочки. Не один.

0 голосов
/ 28 августа 2013

Если вы используете магические методы __get и __set, вы можете использовать @property

/**
  * Description for the class
  * @property type $foo Description for foo
  * @property type $foo Description for bar
  */
 class SomeClass
 {
     private $foo;
     protected $bar;

     public function __get(){
         ...
     }

     public function __set(){
         ...
     }
 }

Ссылки с дополнительной информацией:

...