使用现有注释自动添加PHPDoc

时间:2015-12-02 11:04:28

标签: phpdoc

我想整理一个大型函数包含文件,其中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中使用它们。

我知道您必须手动检查结果,但使用已存在的数据生成骨架会非常有用。

2 个答案:

答案 0 :(得分:2)

你可以使用Reflectiontoken_get_all的组合来实现它,它使用Zend的词法扫描程序将字符串解析为PHP lanugage tokens,并且很可能是正则表达式。

Reflection的问题在于,某些方法(如ReflectionFunctionAbstract::getReturnType)仅在PHP 7上可用。

在PHP 5+中,您可以使用ReflectionFunctionAbstract::getParametersReflectionFunctionAbstract::getDocComment等。

如果没有DocBlock,您可以使用ReflectionFunctionAbstract::getStartLineReflectionFunctionAbstract::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