Подсчет строк кода в проекте Netbeans PHP [закрыто]



Как я могу посчитать LOC PHP-проекта Netbeans?



Im с помощью Netbeans 7.0.1 на Windows 7

874   4  

4 ответов:

Я не нашел способа сделать это в 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.

Я искал то же самое и наткнулся на этот вопрос, но принятый ответ только для LOC, а не для LLOC, и ProjectCodeMeter кажется немного излишним.

Что я нашел в качестве рабочего решения для меня: phploc Себастьяна Бергмана. Работает как заклинание.

Вы можете использовать ProjectCodeMeter для подсчета логических строк кода (LLOC) в любом php-проекте (он знает о комментариях и пустых строках)

Вы можете использовать PDepend или PHPMetrics. Оба проекта являются свободными, с открытым исходным кодом

Comments

    Ничего не найдено.