2010-07-27 3 views
1

Я нахожу, что в PHP, если я делаю это:Doxygen и Visiblity Ключевые слова в PHP

class Foo{ 

    /** 
    * Does something cool 
    * @return 
    * Always returns 1 
    */ 
     public function bar() { 
     return 1; 
     } 
    } 

Doxygen не зарегистрирует функции-члена «бар»

Если я вынимаю на «общественность» ключевое слово , оно делает. Есть ли какие-то настройки, которые контролируют это? Я смотрел онлайн и ничего не видел об этом.

+0

Я не знаю в первую очередь Doxygen, но тег '@ return' PHPDoc имеет различное форматирование и всегда находится в одной строке:' @return int Всегда возвращает 1'. Возможно, этот формат может сработать для вас? – Charles

ответ

0

Поскольку это член класса, вам также нужно прокомментировать класс, чтобы doxygen знал, что нужно искать внутри класса для функций-членов. Сделайте что-нибудь подобное раньше класс Foo

/** 
* @class Foo 
* 
* The foo class is awesome 
*/ 

Вот код, я использую (именно твой плюс тот комментарий), который генерирует выходной сигнал на ссылку ниже.

<?php 

/** 
* @class Foo 
* 
* The foo class is awesome 
*/ 
class Foo{ 

    /** 
    * Does something cool 
    * @return 
    * Always returns 1 
    */ 
     public function bar() { 
     return 1; 
     } 
} 

?> 

http://raged.microsonic.org/test/html/classFoo.html

Надежда, что помогает, удачи!

На боковой ноте всегда рекомендуется (особенно для документации) перечислить ваши типы var в качестве предлагаемого плаката. Обычно я объявляю каждый @param и @return как некоторый тип переменной (так как я исхожу из фона C++), хотя это не совсем необходимо в PHP. В PHP вы, как правило, имеете много «смешанных» типов var, где это не могло случиться в C++. В любом случае удачи в вашем проекте!

+0

Хм, Это должна быть какая-то ошибка синтаксического анализа. Я прояснил все предупреждения. В моем реальном исходном коде я действительно прокомментировал класс, так что это не проблема. Фактически, единственной функцией-членом, которая документируется, является метод __construct(). Я изменил строки @return на одну строку, и это тоже не помогло. – Aaron

+0

В основном я могу воспроизвести тот факт, что doxygen останавливает документирование любых функций-членов, когда ключевые слова visiblity помещаются перед ключевым словом функции. Даже если они все «публичные». Если я удалю все ключевые слова (публичные, частные, защищенные), doxygen документирует все мои функции. По какой-то причине я могу уйти в статике. У меня EXTRACT_ALL установлен YES. Версия doxygen is: doxygen-1.7.1, которую я построил из источника Я ничего не могу найти в Интернете по этому вопросу, а также не могу найти какой-либо параметр, который исправляет эту проблему в файле конфигурации. – Aaron

2

Оказалось, что я использую неправильную версию doxygen. На моем пути уже был doxygen, и он указывал на 1.3x. Теперь все работает.

Смежные вопросы