从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}}
我对此进行了测试,但没有效果。但是如果我省略了第一个逗号,它就能正常工作(有和没有换行符)。但如果我遗漏了逗号,那显然是语法错误。
任何想法如何解决这个问题?
答案 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支持。