我想整理一个大型函数包含文件,其中PHPDoc仅部分使用。有一些没有PHPDoc的函数,比如
function name($var1,$var2){ // explanation what it does
# ...
}
以及PHPDoc存在的一些地方但不完整,就像缺少一些变量一样:
/**
* explanation
*
* @param boolean $var1 foo foo foo
*
* @return null
*/
function name2($var1,$var2){
# ...
}
或只是
/** explanation
*/
function name3($var1,$var2){
# ...
}
如何使用正确的“未知”标签添加所有缺失的变量定义和返回值?
它可以分析每个函数,如果它有一个返回值,它应该转换已经存在的注释(在每个函数后面)并在PHPDoc中使用它们。
我知道您必须手动检查结果,但使用已存在的数据生成骨架会非常有用。
答案 0 :(得分:2)
你可以使用Reflection,token_get_all的组合来实现它,它使用Zend的词法扫描程序将字符串解析为PHP lanugage tokens,并且很可能是正则表达式。
Reflection的问题在于,某些方法(如ReflectionFunctionAbstract::getReturnType
)仅在PHP 7上可用。
在PHP 5+中,您可以使用ReflectionFunctionAbstract::getParameters
,ReflectionFunctionAbstract::getDocComment
等。
如果没有DocBlock,您可以使用ReflectionFunctionAbstract::getStartLine
和ReflectionFunctionAbstract::getEndLine
获取函数的开始和结束行,将源块复制到字符串并使用token_get_all
获取PHP令牌数组单独分析。
PHP 5.6中的反射示例:
<?php
/**
* explanation
*
* @param boolean $var1 foo foo foo
*
* @return null
*/
function test($var1, $var2) {
}
echo ReflectionFunction::export('test', true);
输出:
/**
* explanation
*
* @param boolean $var1 foo foo foo
*
* @return null
*/
Function [ <user> function test ] {
@@ index.php 10 - 12
- Parameters [2] {
Parameter #0 [ <required> $var1 ]
Parameter #1 [ <required> $var2 ]
}
}
答案 1 :(得分:1)
我希望这对你有所帮助。
我正在使用崇高文字编辑器。我安装了 DocBlockr 。 这是link