Skip to content

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

License

Notifications You must be signed in to change notification settings

oytuntez/phploc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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%

Analyse multiple directories and separate results

By using --separate option, you can analyse multiple directories and output their results separately, which are normally merged together. This option will let you output one CSV or XML file, with each directory you provided represented as a separate entity.

➜ ~ phploc ~/web_project ~/cli_project --separate --log-csv results.csv
phploc 2.0.4 by Sebastian Bergmann.

Project Directory                           ~/web_project
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%)
  .....
  
  


Project Directory                           ~/cli_project
Directories                                          2
Files                                                9

Size
  Lines of Code (LOC)                             1858
  Comment Lines of Code (CLOC)                     560 (30.14%)
  Non-Comment Lines of Code (NCLOC)               1298 (69.86%)
  .....

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%