Попробовал использовать doxygen для php. Общие впечатления положительные, всё просто, красиво, удобно. Но обнаружилось несколько нюансов. Возможно мои недочёты связаны с настройкой doxygen, а возможно баги в самом doxygen. На этот вопрос как раз и желаю получить ответ.
Суть:
Имеется тестовый скрипт, и doxygen под, извините, windows (на linux тоже проверял, результат аналогичный).
PHP:
<?php
/*!
* @file
*
* Скрипт для тестирования Doxygen версии 1.8.11
*
* @date 2016-05-17
*/
const DSN_SQLITE = 'sqlite:test_sqlite.db'; //!< DSN для SQLite
try {
$lite_db = new PDO(DSN_SQLITE);
} catch (PDOExeption $e) {
echo '!!! Connection to the sqlite failed: '.$e->getMessage();
}
/*!
* @brief Тестовая функция 1.
*
* Функция для тестирования вывода ненужной информации в документацию.
*
* @param $arg1 Целочисленное значение.
* @return Переданное значение увеличенное в 5 раз.
*/
function tst_func1($arg1) {
return $arg1 * 5;
}
$tst1 = tst_func1(5);
if($tst1 == 25) {
echo "Value tst1 = $tst1\n";
}
/*!
* @brief Тестовая функция 2.
*
* Вторая функция для тестирования вывода другой ненужной информации в документацию.
*
* @param $arg2 Целочисленное значение.
* @return Пнреданное значение увеличенное на 5.
*/
function tst_func2($arg2) {
return $arg2 + 5;
}
?>
Изменены были только основные настройки проекта doxygen, например язык вывода документации, отключены диаграммы и формат LaTeX. Включена оптимизация "C or PHP" (но это не помогло). Остальные настройки по умолчанию.
Что, собственно, не нравится на снимке экрана:
Непонятно, зачем были добавлены фрагменты кода, имеющие после себя блоки. Кстати, если после условия if удалить скобки блока (оставить условие с однострочной инструкцией), то комментарий для tst_func2 будет вовсе проигнорирован и информации об этой функции в документации не будет никакой. Также неясно, почему синтаксис исключения, try в частности воспринимается как переменная.
Подскажите, люди добрые, это я что-то не докрутил или это всё же несовершенство doxygen?