@Alexandr_Vaschenko

Проблемы при генерации документации doxygen для скрипта PHP?

Попробовал использовать 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" (но это не помогло). Остальные настройки по умолчанию.

Что, собственно, не нравится на снимке экрана:

f26ad265d3f94c5cb86ef4a76278c084.png

Непонятно, зачем были добавлены фрагменты кода, имеющие после себя блоки. Кстати, если после условия if удалить скобки блока (оставить условие с однострочной инструкцией), то комментарий для tst_func2 будет вовсе проигнорирован и информации об этой функции в документации не будет никакой. Также неясно, почему синтаксис исключения, try в частности воспринимается как переменная.

Подскажите, люди добрые, это я что-то не докрутил или это всё же несовершенство doxygen?
  • Вопрос задан
  • 378 просмотров
Пригласить эксперта
Ответы на вопрос 2
BOOMER_74
@BOOMER_74
Full-Stack разработчик
Для PHP есть свой стандарт документирования (PSR-5), поддерживаемый многими утилитами (PHPStorm, etc.). Для генерации документации можно использовать phpDocumentor или phpDox (мне понравился phpDox, с phpDocumentor есть некоторые проблемы).
Ответ написан
@300onetwo
Вообщем, в самом коде окружите проверки if else тегами cond и endcond. 600aacc8edb0e438038633.png

Doxygen будет игнорировать содержимое и добавлять в документацию только переменные и методы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы