在Netbeans PHP项目中计算代码行数

6

如何计算Netbeans PHP项目的LOC?

我正在使用Windows 7上的Netbeans 7.0.1。


我记得这个没有支持,但是我可能错了。 - Aurelio De Rosa
4个回答

5

我还没有找到在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文本框中输入,所以可能存在错误。


请注意,这将把注释等视为代码。但是您可以更改countLinesInFile以仅查找不以“〜\ s +?(// |#)〜”开头的行,以获得更准确的读数而没有注释。 - Kris
NetBeans 似乎不提供这样的 PHP 项目功能......因此,这是一种 IDE 无关的解决方案(+1),现在已经足够了。谢谢。 - 0xDEADBEEF

2
我正在寻找同样的问题,并偶然发现了这个问题,但是被接受的答案只适用于LOC,而不是LLOC,而且ProjectCodeMeter似乎有点过度。对我来说,找到的解决方案是Sebastian Bergmann的phploc。运行得非常好。

不支持 PHP 7.2 及以上版本。 - saurabh kamble

0

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


0

你可以使用ProjectCodeMeter来计算任何PHP项目的逻辑代码行数(它能识别注释和空行)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接