如何扫描项目中的“@todo”源代码注释

时间:2011-06-13 10:03:52

标签: php html todo

有没有办法扫描任何TODO的代码库,并生成一个可以在标准网页上显示的列表。

E.g。

  

@todo不推荐使用的函数删除.........(functions.php [第12行])

这需要在本地WAMP服务器上运行。

3 个答案:

答案 0 :(得分:7)

Windows平台上,或者如果您想使用 PHP本身,您可以使用...

function getTodos($path) {
   $todos = array();
   $items = glob(rtrim($path, '/') . '/*');

   foreach($items as $item) {

       if (is_file($item) AND pathinfo($item, PATHINFO_EXTENSION) == 'php') {
           $fileContents = file_get_contents($item);

           $tokens = token_get_all($fileContents);

           foreach($tokens as $type = $token) {
               if (($type == 'T_COMMENT' OR $type == 'T_ML_COMMENT')
                   AND preg_match_all('/^\s*(?P<todo>@todo.*?)\z/m', $token, $matches) {
                  $todos = array_merge($todos, $matches['todo']);
               }
           }

       } else if (is_dir($item)) {
           $todos = array_merge$($todos, getTodos($item));
           continue;
       }       

   }

   return $lines;
}

我没有测试它,但它应该在理论上起作用。 :)

* nix 上,您可以使用grep ...

$ grep -r \b@todo\b ./

它并不完美(它会在字符串中找到它)但它应该足够好。 :)

答案 1 :(得分:4)

Phpdoc可以从代码库中的注释和方法生成html文件。它还会显示待办事项等。

http://www.phpdoc.org/

答案 2 :(得分:1)

PHPStorm能够提取所有todo文件,我在提交非常好的功能之前使用它,开箱即用。

免费获取开源许可, http://www.jetbrains.com/phpstorm/

还有其他各种许可证 http://www.jetbrains.com/phpstorm/buy/index.jsp

[我不喜欢Jetbrains只是一个喜欢使用它的开发者]