2013-07-22 2 views
0

Допустим, у меня есть родительский класс с некоторой переменной, которая имеет PHPDoc:Документирование унаследовал функции/переменные в подклассах с PHPDoc

class Parent 
{ 
    /** 
    * This variable stores some important value that 
    * is going to be changed in child classes 
    * @var integer 
    */ 
    public $variable = 0; 
} 

Сейчас я пишу класс ребенка, который имеет эту переменную перекрываться:

class Child extends Parent 
{ 
    public $variable = 10; 
} 

Так что мой вопрос: какой phpdoc следует писать для переменной $ в классе Child, поэтому мне не нужно копировать и вставлять описание переменных? Тот же вопрос идет о методах. Помощь очень ценится.

Обновление: Я задал этот вопрос после того, как увидел ошибки после создания phpdoc, например «Нет сводки для свойства $ variable» в классе Child. Если я добавлю это резюме, ошибка исчезнет, ​​но phpdoc все равно покажет описание из класса Parent, независимо от того, что я пишу в классе Child. Что я делаю не так?

+0

['{@inheritdoc}'] (http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.inlineinheritdoc.pkg.html), может быть? – Clive

+0

{@inheritDoc} похоже, используется для описания класса, а не для переменной/метода. Возможно, это должно быть сделано с {@see}, но я, похоже, не могу найти правильный путь. –

+0

Ах да, [кажется, они изменили его] (http://pear.php.net/bugs/bug.php?id=12211). Забавно, но я знаю крупный PHP-проект с открытым исходным кодом, который использует '{@inheritdoc}' религиозно по методам/переменным класса, а не только для классов. И их документы компилируются просто отлично. Фактически, даже Symfony использует его, так что это, безусловно, правильный путь – Clive

ответ

0

Такое поведение звучит как ошибка для меня. Полный недостаток docblock в свойствах дочернего класса должен привести к тому, что док-блок родительского свойства будет полностью унаследован. Пожалуйста, сообщите об этом как о проблеме в реестре github.