2011-11-01 9 views

Odpowiedz

5

nie znalazłem sposób na to, że w NetBeans (na dowolnym systemie operacyjnym), ale sądzę, że można uciec z czymś, co następuje:

Zapisz ten mały skrypt gdzieś, gdzie można je znaleźć (powiedzmy "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])); 

i używać go w linii poleceń (cmd.exe):

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

Z pewnymi drobnymi sztuczkami jestem pewien, że możesz utworzyć skrót do niego, który możesz umieścić na pasku szybkiego uruchamiania lub użyć go w innym narzędziu.

Może mam błędy od chwili, gdy je wpisałem, głównie w polu tekstowym SO.

+0

należy zauważyć, że spowoduje to wyświetlenie komentarzy itp. Jako kodu. ale można zmienić 'countLinesInFile' tak, aby znajdowało linie nie zaczynające się od" ~ \ s +? (\/\/| #) ~ ", aby uzyskać nieco dokładniejszy odczyt bez komentarzy. – Kris

+0

netbeans nie oferuje takiej funkcji dla php-projektów najwyraźniej ... więc jest to rozwiązanie, które działa ide-niezależne (+1) i wystarcza na razie. dzięki – 0xDEADBEEF

0

można użyć ProjectCodeMeter liczyć linie logiczne kodu (Lloc) w sprawie każdego projektu php (jest świadomy komentarzy i pustych wierszy)

2

Szukałem takie same i potknął się o to pytanie, ale akceptowane Odpowiedź jest tylko dla LOC, nie dla LLOC, a ProjectCodeMeter wydaje się być nieco przesadą.

Co znalazłem jako rozwiązanie dla mnie: phploc autorstwa Sebastiana Bergmanna. Działa jak marzenie.

0

Możesz użyć PDepend lub PHPMetrics. Oba są darmowe, open source projektów