Download

We distribute a PHP Archive (PHAR) that contains all required dependencies of PHP Reflect bundled in a single file.

Make it executable, and put it into your $PATH.

$ chmod +x phpreflect-3.1.2.phar
$ mv phpreflect-3.1.2.phar /usr/local/bin/phpreflect

$ phpreflect --version

You can also immediately use the PHAR after you have downloaded it.

$ wget http://bartlett.laurent-laville.org/get/phpreflect-3.1.2.phar
$ php phpreflect-3.1.2.phar --version

With both methods then you have this output :

phpReflect version 3.1.2

Other alternative installations are possible. Please refer to the documentation for details on how to do this.

Configuration

With the minimalist JSON file phpreflect.json
{
    "source-providers": [
        {
            "in": ". as current",
            "name": "/\\.(php|inc|phtml)$/"
        }
    ],
    "plugins": [
    ],
    "analysers": [
    ],
    "services": [
    ]
}

Put it in your project’s folder. Alternative locations are possible. Please refer to the documentation for details on how to do this.

The JSON configuration file is no more required for basic usage. Reserved to advanced users.

Structure

source-providers
this entry provide list of your data sources to parse.
plugins
this entry list all plugins added to the core base code of PHP Reflect.
analysers
this entry list all analysers that may be used with the analyser:run command.
services
this entry list all services that may be used with this application.

Execution

With the Reflect source code, invoke the following command :

$ phpreflect analyser:run .

and you should obtain something like this :

Data Source Analysed

Directories                                         20
Files                                               72

Structure
  Namespaces                                        20
  Interfaces                                         8
  Traits                                             0
  Classes                                           64
    Abstract Classes                                 6 (9.38%)
    Concrete Classes                                58 (90.62%)
  Methods                                          293
    Scope
      Non-Static Methods                           280 (95.56%)
      Static Methods                                13 (4.44%)
    Visibility
      Public Method                                250 (85.32%)
      Protected Method                              34 (11.60%)
      Private Method                                 9 (3.07%)
  Functions                                         13
    Named Functions                                  0 (0.00%)
    Anonymous Functions                             13 (100.00%)
  Constants                                         22
    Global Constants                                 0 (0.00%)
    Magic Constants                                  3 (13.64%)
    Class Constants                                 19 (86.36%)
  Tests
    Classes                                          0
    Methods                                          0

Another analyser (loc) is also available, and can be combined or not with structure the default analyser.

With the Reflect source code, invoke the following command :

$ phpreflect analyser:run . loc

and you should obtain something like this :

Data Source Analysed

Directories                                         20
Files                                               72

Size
  Lines of Code (LOC)                             3721
  Comment Lines of Code (CLOC)                     136 (3.65%)
  Non-Comment Lines of Code (NCLOC)               3585 (96.35%)
  Logical Lines of Code (LLOC)                    1196 (32.14%)
    Classes                                       1116 (93.31%)
      Average Class Length                          17
      Average Method Length                          3
    Functions                                       80 (6.69%)
      Average Function Length                        6
    Not in classes or functions                      0 (0.00%)

Complexity
  Cyclomatic Complexity / LLOC                    0.55
  Cyclomatic Complexity / Number of Methods       2.88

Summary

Let’s review what we’ve done :

  • downloaded the latest stable PHAR version.

  • prepared a minimalist JSON configuration file that is OPTIONAL to run Reflect commands.

  • executed your first parse on the Reflect data source.

Next

Choose your way depending of your skill level.

Read more
  • Want to learn more about the command line interpreter (CLI) version, interface that do Reflect an easy tool without to write a line of PHP code, have a look on user’s guide

  • Want to learn more about Reflect architecture and /or you want to extends it to match your needs, have a look on developer’s guide

  • You are a user of previous version 1.9 that is really different, and want to upgrade to the new major version 2, and keep your old environment still running, have a look on migration’s guide