PHP 和带有多个 属性 声明的 Doxygen

PHP and Doxygen with multiple property declaration

我终于让 doxygen 与 php 和 PHPDoc 风格的评论一起工作(我正在用过滤器删除“@package”,因为它会破坏 doxygen)尽管有一件事我会喜欢拥有但无法弄清楚如何。

在 PHP 中,我在 class 中编写多个 属性 声明,如下所示:

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 兼容?

P.S:我考虑过应用一个过滤器,将其转换为 doxygen 可解析的代码风格。虽然这只是一个修复程序,但我目前正在处理它。

我编写了这个过滤器,适用于您提供的示例。我认为它也应该适用于更复杂的示例。

// Get the input
$source = file_get_contents($argv[1]);

$count = 0;

do {
    $source = preg_replace('#(private|public|protected)(\s*[^$]*)($[^,;]+),#',
                           "  ;\n ", $source, -1, $count);
} while($count > 0);

// Output
echo $source;

您可以在我的 GitHub 存储库 doxygen-php-filters 中找到这个和其他过滤器。