Как отобразить полные докблоки для унаследованных методов в PhpDocumentor? - PullRequest
0 голосов
/ 16 октября 2011

В настоящее время у меня есть код, в котором есть абстрактный родительский класс, который определяет некоторые конкретные методы, а дочерние классы расширяют этот родительский класс и будут использовать конкретные методы. Например:

<?php

abstract class abstract_class {
    /**
    *   I document foo.
    */
    public function foo() {
        echo "I am the foo function!";
    }
}

class child_class {
    /**
    *   I document bar.
    */
    public function bar() {
        echo "I am the bar function!";
    }
}

?>

В моей документации для child_class я вижу, что моя функция bar () хорошо документирована как в кратком описании метода, так и в подробном описании метода ... но моя функция foo (), которая была унаследована, указана только как наследуемая и мне нужно перейти по ссылке, чтобы увидеть полную документацию, и даже просто увидеть, что она вызывается этой функцией. Пример того, что я вижу, показан на изображении здесь . (Я не могу разместить изображение здесь, потому что я новый пользователь ...)

Согласно документации PhpDocumentors Я должен каким-то образом увидеть Докблок, но я не знаю, как это сделать:

Новое в версии 1.2.0, DocBlock наследуются дочерними классами, переменными и методами.

Я искал переключатель или что-то, что запускалось при вызове phpdoc из командной строки, но ничего не нашел.

Как я могу отображать информацию, которую я хочу, так, как я хочу?

Ответы [ 2 ]

1 голос
/ 17 октября 2011

Если вы не переопределите метод в дочернем классе, то я думаю, что структура различных выходных преобразователей покажет вам только список унаследованных методов. Некоторые конвертеры включают в себя как минимум краткое описание метода из блока документации (HTML: Smarty: PHP), тогда как другие этого не делают (HTML: frames: default).

Нет, нет конфигурации или переключателя времени выполнения, который можно использовать для изменения этого поведения. Это просто вопрос того, как выходные преобразователи пишутся для структурирования получающегося документа.

Теперь, если вы снова захотите переопределить метод в дочернем классе, будь то переопределение родительского метода или просто фактическая реализация конкретного метода для абстрактного метода родителя, тогда многие аспекты, которые вы написали в родительском классе Докблок метода будет виден в документе дочернего метода.

Следуя вашему примеру, это лучше всего продемонстрировать, если у абстрактного класса есть абстрактный метод, и он полностью документирован. Затем дочерний класс реализует метод, но не имеет собственного докблока (потому что по соглашению он должен точно следовать описанию, которое содержится в методе docblock абстрактного родителя). Это наследование документа должно быть видно по параметру, а возвращаемые теги должны быть видимыми, например.

Этот тип наследования также виден в таких средах разработки, как Eclipse. Если phpDocumentor не может показать этот тип наследования в документах дочернего класса, это ошибка.

0 голосов
/ 16 октября 2011

Попробуйте Docblox. Это похоже, но на выходе AJAX золото. Не хватает только веб-интерфейса. Я установил его как грушевый пакет.

...