How to document class properties in PHP 5 with phpDocumentor

后端 未结 4 683
感情败类
感情败类 2020-12-30 20:41

Take in consideration the following PHP 5 class:

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


    function __construct()
          


        
相关标签:
4条回答
  • 2020-12-30 21:08

    I would generally use at least the @var tag, to indicate the type of variable this is.

    For instance :

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


    This is exactly what's done by Zend Framework, for instance ; see Zend_Layout (quoting) :

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


    Note : the @access tag was useful with PHP 4 (when there were no public/protected/private), but I never use it when I document code written in PHP 5 : the code, using the visibility keywords is self-documenting.

    0 讨论(0)
  • 2020-12-30 21:24

    In the case you use a __get and __set magic methods you can use @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(){
             ...
         }
     }
    

    Links with more info:

    • http://www.phpdoc.org/docs/latest/for-users/phpdoc/tags/property.html
    • http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.property.pkg.html
    0 讨论(0)
  • 2020-12-30 21:26
    /**
     * This is what the variable does. The var line contains the type stored in this variable.
     * @var string
     */
    private $foo;
    
    0 讨论(0)
  • /**
     * docstring
     */
    private $foo;
    

    Important note: there should be two asterisks. Not one.

    0 讨论(0)
提交回复
热议问题