2011-11-01 30 views

Trả lời

5

tôi đã không tìm thấy một cách để làm điều đó trong netbeans (trên bất kỳ hệ điều hành), nhưng tôi đoán bạn có thể nhận được ngay với một cái gì đó như sau:

Save này ít kịch bản một nơi mà bạn có thể tìm thấy nó: (cho phép nói "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])); 

và sử dụng nó trên dòng lệnh (cmd.exe):

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

Với một số thủ thuật nhỏ, tôi chắc chắn bạn có thể tạo lối tắt cho nó mà bạn có thể đặt trên thanh khởi động nhanh hoặc sử dụng nó trong một số công cụ khác.

Có thể có lỗi vì tôi đã nhập nó ngay bây giờ, chủ yếu là trong hộp văn bản SO.

+0

lưu ý rằng điều này sẽ thấy các nhận xét, v.v. dưới dạng mã. nhưng bạn có thể thay đổi 'countLinesInFile' thành các dòng được tìm thấy không bắt đầu bằng" ~ \ s +? (\/\/| #) ~ "để đọc một cách chính xác hơn mà không có bình luận. – Kris

+0

netbeans không cung cấp tính năng như vậy cho các dự án php rõ ràng ... vì vậy đây là một giải pháp hoạt động độc lập (+1) và là đủ cho bây giờ. cảm ơn – 0xDEADBEEF

0

bạn có thể sử dụng ProjectCodeMeter để đếm dòng logic của mã (LLOC) trên bất kỳ dự án php (đó là ý thức về ý kiến ​​và dòng trống)

2

tôi đang tìm kiếm giống nhau và tình cờ qua câu hỏi này, nhưng chấp nhận câu trả lời chỉ dành cho LOC, không phải cho LLOC và ProjectCodeMeter có vẻ hơi quá mức.

Tôi đã tìm thấy giải pháp làm việc cho mình: phploc bởi Sebastian Bergmann. Làm việc như một say mê.

0

Bạn có thể sử dụng PDepend hoặc PHPMetrics. Cả hai đều là miễn phí, mã nguồn mở dự án

Các vấn đề liên quan