【问题标题】:Count Lines of Code on Netbeans PHP Project [closed]计算 Netbeans PHP 项目的代码行数
【发布时间】:2011-11-01 16:28:47
【问题描述】:

如何计算 Netbeans PHP 项目的 LOC?

我在 Windows 7 上使用 Netbeans 7.0.1

【问题讨论】:

  • 我记得没有对此的支持,但我可能是错的。

标签: php netbeans metrics lines-of-code


【解决方案1】:

我还没有找到在 netbeans 中(在任何操作系统上)执行此操作的方法,但我想您可以通过以下方式逃脱:

把这个小脚本保存在你能找到的地方:(比如说“cntln.php”)

<?php

function countLinesInFile($fileInfo)
{
    return count(file($fileInfo));
}

function countLinesInDir($directory, $filePattern)
{
    $total = 0;
    $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));
    foreach($iterator as $fileInfo)
    {
        if (-1 < preg_match($filePattern, $fileInfo->getFileName()))
        {
            $total += countLinesInFile($fileInfo);
        }
    }
    return $total;
}

function usage($argv)
{
    printf("usage: php -q %s <directory> <filematch>\n", reset($argv));

    printf(" - directory: path to the root directory of a project.\n");
    printf(" - filematch: regex pattern for files to include.\n");

    return 1;
}

if (count($argv) < 3)
{
    die(usage($argv));
}

printf("%d\n", countLinesInDir($argv[1], $argv[2]));

并在命令行(cmd.exe)上使用它:

c:> php -q cntln.php "C:\projects\foo" "~\.php$~"

通过一些小技巧,我相信您可以创建一个快捷方式,您可以将其放在快速启动栏上或在其他一些工具中使用它。

可能有错误,因为我刚刚输入了它,主要是在 SO 文本框中。

【讨论】:

  • 请注意,这会将 cmets 等视为代码。但是您可以将 countLinesInFile 更改为仅找到不以“~\s+?(\/\/|#)~”开头的行,以便在没有 cmets 的情况下获得更准确的读数。
  • netbeans 显然没有为 php-projects 提供这样的功能......所以这是一个独立于 ide (+1) 的解决方案,现在就足够了。谢谢
【解决方案2】:

我一直在寻找相同的问题并偶然发现了这个问题,但接受的答案仅适用于 LOC,不适用于 LLOC,而且 ProjectCodeMeter 似乎有点矫枉过正。

我发现对我来说可行的解决方案:phploc,作者是 Sebastian Bergmann。像魅力一样工作。

【讨论】:

  • 不支持 PHP 7.2 以上不再支持。
【解决方案3】:

您可以使用 ProjectCodeMeter 计算任何 php 项目的逻辑代码行数 (LLOC)(它可以识别 cmets 和空行)

【讨论】:

    【解决方案4】:

    您可以使用 PDepend 或 PHPMetrics。两者都是免费的开源项目

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      • 2015-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-16
      相关资源
      最近更新 更多