Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A tool for quickly measuring the size of a PHP project.

README.md

Latest Stable Version Build Status

PHPLOC

phploc is a tool for quickly measuring the size and analyzing the structure of a PHP project.

Installation

PHP Archive (PHAR)

The easiest way to obtain PHPLOC is to download a PHP Archive (PHAR) that has all required dependencies of PHPLOC bundled in a single file:

wget https://phar.phpunit.de/phploc.phar
chmod +x phploc.phar
mv phploc.phar /usr/local/bin/phploc

You can also immediately use the PHAR after you have downloaded it, of course:

wget https://phar.phpunit.de/phploc.phar
php phploc.phar

Composer

Simply add a dependency on phploc/phploc to your project's composer.json file if you use Composer to manage the dependencies of your project. Here is a minimal example of a composer.json file that just defines a development-time dependency on PHPLOC:

{
    "require-dev": {
        "phploc/phploc": "*"
    }
}

For a system-wide installation via Composer, you can run:

composer global require 'phploc/phploc=*'

Make sure you have ~/.composer/vendor/bin/ in your path.

Usage Examples

Analyse a directory and print the result

➜ ~ phploc src
phploc 2.0.4 by Sebastian Bergmann.

Directories                                          3
Files                                                8

Size
  Lines of Code (LOC)                             1858
  Comment Lines of Code (CLOC)                     560 (30.14%)
  Non-Comment Lines of Code (NCLOC)               1298 (69.86%)
  Logical Lines of Code (LLOC)                     289 (15.55%)
    Classes                                        260 (89.97%)
      Average Class Length                          37
      Average Method Length                          9
    Functions                                        5 (1.73%)
      Average Function Length                        5
    Not in classes or functions                     24 (8.30%)

Complexity
  Cyclomatic Complexity / LLOC                    0.67
  Cyclomatic Complexity / Number of Methods       7.86

Dependencies
  Global Accesses                                    2
    Global Constants                                 2 (100.00%)
    Global Variables                                 0 (0.00%)
    Super-Global Variables                           0 (0.00%)
  Attribute Accesses                                48
    Non-Static                                      48 (100.00%)
    Static                                           0 (0.00%)
  Method Calls                                      96
    Non-Static                                      91 (94.79%)
    Static                                           5 (5.21%)

Structure
  Namespaces                                         4
  Interfaces                                         0
  Traits                                             0
  Classes                                            7
    Abstract Classes                                 0 (0.00%)
    Concrete Classes                                 7 (100.00%)
  Methods                                           28
    Scope
      Non-Static Methods                            28 (100.00%)
      Static Methods                                 0 (0.00%)
    Visibility
      Public Method                                 10 (35.71%)
      Non-Public Methods                            18 (64.29%)
  Functions                                          1
    Named Functions                                  0 (0.00%)
    Anonymous Functions                              1 (100.00%)
  Constants                                          1
    Global Constants                                 1 (100.00%)
    Class Constants                                  0 (0.00%)

Analyse a directory for each revision in a Git repository and write the result in CSV format

➜ ~ phploc --log-csv log.csv --progress --git-repository . src
phploc 2.0.4 by Sebastian Bergmann.

 295/295 [============================] 100%
Something went wrong with that request. Please try again.