有没有办法让doxygen使用数组短语法(PHP 5.4)

时间:2014-03-25 15:26:50

标签: php arrays doxygen

从PHP 5.4开始,数组的语法很短 可以写$arr = [1,2,3,4,5]; $arr = array(1,2,3,4,5); class Test { /** * brief description * @var array $arr */ $arr = [ 0 => [ ... ], 2 => [ ... ] ]; } [ 0 => [ ... ]

但如果你有这样的事情:

[...]

然后doxygen不显示初始化线或仅显示array( ... )

到目前为止,我有很多代码只使用短语法,我不想为文档工具更改它。

有没有办法教doxygen使用 $arr = [ 0 => [ ... ], 2 => [ ... ] ]; 作为{{1}}?我正在使用doxygen 1.8.7

提前致谢

编辑:
我有一个想法,如果我像这样写

,问题可能是换行符
{{1}}

我对此进行了测试,但没有效果。但是如果我省略了第一个逗号,它就能正常工作(有和没有换行符)。但如果我遗漏了逗号,那显然是语法错误。

任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这需要一段时间,但我自己找到了一种方法。也许有人有同样的问题,所以我在这里发布我的解决方案。

我将此answer读给另一个问题,我写了一个更改的过滤器 public $var = [ ... ];public $var = array( ... );

Doxygen比将正确显示数组和所有内容。

<?php 

$source = file_get_contents($argv[1]);

$regexp = '#(var|public|protected|private)\s+(\$[^\s;=]+)\s+\=\s+\[([\s\S]*?)\]\;#';
$replac = '${1} ${2} = array( ${3} );';
$source = preg_replace($regexp, $replac, $source);

echo $source;

?>

Here是正则表达式的预览。

你可以找到更多输入过滤器来改善do GitHub上的doxygen的php支持。