2010-02-03 4 views
18

, tenga en cuenta lo siguiente clase PHP 5:cómo documentar las propiedades de clase en PHP 5 con phpDocumentor

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; 
    } 
} 

¿Cómo en phpDocumentor voy a documentar la propiedad foo $? Ni siquiera estoy seguro de que deba documentarse, pero me gustaría saber cómo si ...

Sé cómo documentar SetFoo() y GetFoo(), simplemente no estoy seguro de la propiedad privada (variable?).

Gracias!

Respuesta

31
/** 
* This is what the variable does. The var line contains the type stored in this variable. 
* @var string 
*/ 
private $foo; 
15

I sería generalmente utilizar al menos la etiqueta @var, para indicar el tipo de variable es esto.

Por ejemplo:

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


Esto es exactamente lo que ha hecho por Zend Framework, por ejemplo; ver Zend_Layout(citando):

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'; 


Nota: la etiqueta @access era útil con PHP 4 (cuando no había public/protected/private), pero nunca lo uso cuando Signatura del documento: escrito en PHP 5: el código, utilizando las palabras clave de visibilidad, es autodidacta.

+0

@var MyClass $ foo en realidad debería ser @property MyClass $ foo, según cómo lo usó (y en ese caso, @property sugiere una var mágica). El ejemplo de Zend que publicó muestra el uso correcto de @var –

+0

Gracias por los detalles sobre @access. Eso es exactamente lo que estaba buscando cuando encontré esta página. – Matt

+0

+1 - pero, ¿el nombre de la variable debe estar en el comentario en su primer ejemplo? –

0

En el caso de que utilice un __get y métodos mágicos __set puede utilizar @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(){ 
     ... 
    } 
} 

Enlaces con más información:

+3

'@ property' se usa para etiquetar propiedades mágicas. Para marcar a los miembros de la clase, use '@ var'. Ver http://manual.phpdoc.org/HTMLSmartyConverter/PHP/phpDocumentor/tutorial_tags.property.pkg.html – DanFromGermany

+0

En su ejemplo, '$ foo' y' $ bar' no son propiedades mágicas, porque usted las declaró. – DanFromGermany

1
/** 
* docstring 
*/ 
private $foo; 

Nota importante: debe haber dos asteriscos. Ni uno.

Cuestiones relacionadas