Я использую doxygen, но он не документирует некоторые мои занятия. Все эти классы вызываются следующим образом:
<?php
if(!class_exists('a')){
class a{
function b(){
print 'c';
}
}
}
?>
Я предполагаю, что это связано с if (! Class_exists (‘a’)), как я могу позволить doxygen по-прежнему документировать это?
У 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.
Других решений пока нет …