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

发布于 2024-11-15 10:02:23 字数 166 浏览 6 评论 0原文

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

例如

@todo 已弃用的函数删除.........(functions.php [第 12 行])

这需要在本地WAMP服务器上工作。

Is there any way to scan a codebase for any TODO's and generate a list that can be displayed on a standard web page.

E.g.

@todo Deprecated function remove......... (functions.php [Line 12])

This needs to work on a local WAMP server.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

︶ ̄淡然 2024-11-22 10:02:23

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 ./

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

On a Windows platform or if you wanted to use PHP itself, you could use...

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;
}

I have not tested it, but it should work in theory. :)

On *nix, you could use grep...

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

It's not perfect (it will find it within strings) but it should be good enough. :)

人海汹涌 2024-11-22 10:02:23

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

http://www.phpdoc.org/

Phpdoc can generate html files from the comments and methods in your codebase. It will also show todos etc.

http://www.phpdoc.org/

假情假意假温柔 2024-11-22 10:02:23

PHPStorm 能够提取所有待办事项文件,我在提交之前使用它,功能非常好,并且开箱即用。

它是免费的开源许可证,
http://www.jetbrains.com/phpstorm/

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

[我不隶属于 Jetbrains,只是一个喜欢使用它的开发人员]

PHPStorm has an ability to pull up all the todo files, I use it before making commits very nice function and works out of the box.

Its Free for open source Licences,
http://www.jetbrains.com/phpstorm/

there are various other licences available
http://www.jetbrains.com/phpstorm/buy/index.jsp

[I am not affiliated with Jetbrains just a developer that likes to use it]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文