class — Doxygen не документирует php код внутри тегов if

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

<?php
if(!class_exists('a')){
class a{

function b(){
print 'c';
}
}
}
?>

Я предполагаю, что это связано с if (! Class_exists (‘a’)), как я могу позволить doxygen по-прежнему документировать это?

2

Решение

У Doxygen много проблем с документированием php кода. И многие из них могут быть исправлены с помощью input_filter,

Используйте следующий код в качестве фильтра

<?php
$source = file_get_contents($argv[1]);
$regexp = '#(<\?php[\s]+)(if\(!class_exists\([^\)]+\)\)\{)([\s\S]*)(\})([\s]*\?>)#';
$replace = '$1 $3 $5';
$source = preg_replace($regexp, $replace, $source);
echo $source;
?>

и введите его как

/path/to/php php_var_filter.php

в INPUT_FILTER установка.

Обратите внимание: таким образом вы можете исправить многие проблемы с кислородом. Если что-то не работает, это происходит из-за разницы между кодом c (или c ++) и кодом php (наиболее вероятно). Вы можете использовать input_filter, чтобы изменить свой php-код, чтобы он больше походил на c-код. Это исправит многие проблемы.

редактировать
Может быть, вы также хотите подумать о функции автозагрузки. Я думаю, что это лучший способ получить if(!class_exists(..))-результат.

редактировать
Я только заметил, что я уже ответил на аналогичный вопрос по-другому. Вы также можете использовать это ответ.

Вы можете найти еще несколько входных фильтров для улучшения поддержки php в Doxygen. GitHub.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]