Наконец-то я получил doxygen для работы с комментариями в стиле php и PHPDoc (я удаляю ‘@package’ с фильтром, так как он разбивает doxygen), хотя есть одна вещь, которую я хотел бы иметь и не могу понять, как это сделать.
В PHP я пишу несколько объявлений свойств в классе, как это:
class Foo
{
private
/// the blue color
$blue,
/// the red color
$red,
/// the yellow color
$yellow;
public
/// the orange color
$orange,
/// black (no color)
$black;
public function bar() {}
}
Если я сейчас создаю документы, только первое свойство отображается как private Attribute
в то время как все другие свойства просто упоминаются как Data Fields
, Таким образом, doxygen, очевидно, не разбирает аксессоры каждого свойства после первого.
Можно ли сделать этот стиль комментирования совместимым с doxygen?
П.С .: Я думал о применении фильтра, который преобразует его в стиль кода, разбираемый с помощью кислорода. Хотя это было бы только исправлением, я сейчас работаю над этим.
Я написал этот фильтр, который работает для приведенного вами примера. Я думаю, что я должен также работать для более сложных примеров.
// Get the input
$source = file_get_contents($argv[1]);
$count = 0;
do {
$source = preg_replace('#(private|public|protected)(\s*[^$]*)(\$[^,;]+),#',
"$2 $1 $3;\n$1 ", $source, -1, $count);
} while($count > 0);
// Output
echo $source;
Вы можете найти этот и другие фильтры в моем репозитории GitHub. Doxygen-PHP-фильтры.
Других решений пока нет …