Download

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

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

$ chmod +x phpcompatinfo-5.0.12.phar
$ mv phpcompatinfo-5.0.12.phar /usr/local/bin/phpcompatinfo

$ phpcompatinfo --version

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

$ wget http://bartlett.laurent-laville.org/get/phpcompatinfo-5.0.12.phar
$ php phpcompatinfo-5.0.12.phar --version

With both methods then you have this output :

phpCompatInfo version 5.0.12 DB version 1.29.0 built Feb 01 2018 22:12:58 CET

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

Configuration

With the minimalist JSON file phpcompatinfo.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 CompatInfo source code, invoke the following command :

$ phpcompatinfo analyser:run .

and you should obtain something like this :

Data Source Analysed

Directories                                         11
Files                                               13

Extensions Analysis

    Extension Matches REF      EXT min/Max PHP min/Max PHP all
    Core              Core                 4.0.0       5.3.0
    PDO               PDO      5.1.0       5.1.0
    curl              curl     4.0.2       4.0.2
    intl              intl     2.0.0b1     5.3.7
    libxml            libxml   5.1.0       5.1.0
    openssl           openssl  5.2.0       5.2.0
    pcre              pcre     4.0.0       4.0.0
    spl               spl      5.1.0       5.1.0
    standard          standard 4.0.0       4.0.0       5.3.2
    Total [9]                              5.3.7

Namespaces Analysis

    Namespace                             Matches REF  EXT min/Max PHP min/Max PHP all
    +global                                       Core             4.0.0
    Bartlett\CompatInfo                           user             5.3.0
    Bartlett\CompatInfo\Analyser                  user             5.3.0
    Bartlett\CompatInfo\Api                       user             5.3.0       5.3.2
    Bartlett\CompatInfo\Api\V3                    user             5.3.0
    Bartlett\CompatInfo\Collection                user             5.3.0
    Bartlett\CompatInfo\Console                   user             5.3.0
    Bartlett\CompatInfo\Console\Formatter         user             5.3.0
    Bartlett\CompatInfo\Output                    user             5.3.0
    Bartlett\CompatInfo\PhpParser                 user             5.3.0
    Bartlett\CompatInfo\Reference                 user             5.3.0
    Bartlett\CompatInfo\Util                      user             5.3.0
    Total [12]                                                     5.3.0       5.3.2

Interfaces Analysis

    Interface                                        Matches REF  EXT min/Max PHP min/Max PHP all
    Bartlett\CompatInfo\Reference\ReferenceInterface 1       user             5.3.0
    Total [1]                                                                 5.3.0

No trait found

Classes Analysis

    Class                                                              Matches REF  EXT min/Max PHP min/Max PHP all
    Bartlett\CompatInfo\Analyser\CompatibilityAnalyser                         user             5.3.0
    Bartlett\CompatInfo\Api\Reference                                          user             5.3.0       5.3.2
    Bartlett\CompatInfo\Api\V3\Reference                                       user             5.3.0
    Bartlett\CompatInfo\Collection\ReferenceCollection                 1       user             5.3.0
    Bartlett\CompatInfo\Console\Application                                    user             5.3.0
    Bartlett\CompatInfo\Console\Formatter\CompatibilityOutputFormatter         user             5.3.0
    Bartlett\CompatInfo\Environment                                    4       user             5.3.0
    Bartlett\CompatInfo\Output\Reference                                       user             5.3.0
    Bartlett\CompatInfo\PhpParser\ConditionalCodeNodeProcessor         1       user             5.3.0
    Bartlett\CompatInfo\Reference\ExtensionFactory                     2       user             5.3.0
    Bartlett\CompatInfo\Reference\SqliteStorage                        1       user             5.3.0
    Bartlett\CompatInfo\Util\Version                                   10      user             5.3.0
  U Bartlett\Reflect\Analyser\AbstractAnalyser                         1       user             5.3.0
  U Bartlett\Reflect\Api\BaseApi                                       1       user             5.3.0
  U Bartlett\Reflect\Api\V3\Common                                     1       user             5.3.0
  U Bartlett\Reflect\Console\Application                               1       user             5.3.0
  U Bartlett\Reflect\Console\Formatter\OutputFormatter                 2       user             5.3.0
  U Bartlett\Reflect\PhpParser\NodeProcessorAbstract                   1       user             5.3.0
  U Doctrine\Common\Collections\AbstractLazyCollection                 1       user             5.3.0
  U Doctrine\Common\Collections\ArrayCollection                        1       user             5.3.0
    PDO                                                                2       PDO  5.1.0       5.1.0
  U PhpParser\Node                                                     21      user             5.3.0
  U PhpParser\Node\Name                                                1       user             5.3.0
    RuntimeException                                                   1       spl  5.1.0       5.1.0
  U Symfony\Component\Console\Helper\TableSeparator                    3       user             5.3.0
  U Symfony\Component\Console\Output\OutputInterface                   4       user             5.3.0
    parent                                                             5       Core 5.0.0       5.0.0
    self                                                               11      Core 5.0.0       5.0.0
    stdClass                                                           1       Core 4.0.0       4.0.0
    Total [29]                                                                                  5.3.0       5.3.2

Functions Analysis

    Function                    Matches REF      EXT min/Max PHP min/Max
    array_key_exists            7       standard 4.0.7       4.0.7
    array_map                   2       standard 4.0.6       4.0.6
    array_merge                 3       standard 4.0.0       4.0.0
    array_pop                   6       standard 4.0.0       4.0.0
    array_shift                 2       standard 4.0.0       4.0.0
    array_slice                 1       standard 4.0.0       4.0.0
    array_values                1       standard 4.0.0       4.0.0
    closure-73-75                       user                 5.3.0
    copy                        1       standard 4.0.0       4.0.0
    count                       14      standard 4.0.0       4.0.0
 C  curl_version                1       curl     4.0.2       4.0.2
    defined                     4       Core     4.0.0       4.0.0
    dirname                     3       standard 4.0.0       4.0.0
    each                        2       Core     4.0.0       4.0.0
    end                         3       standard 4.0.0       4.0.0
    explode                     2       standard 4.0.0       4.0.0
    extension_loaded            1       Core     4.0.0       4.0.0
    file_exists                 2       standard 4.0.0       4.0.0
    function_exists             1       Core     4.0.0       4.0.0
    in_array                    10      standard 4.0.0       4.0.0
    is_array                    1       standard 4.0.0       4.0.0
    is_callable                 1       standard 4.0.6       4.0.6
    is_string                   10      standard 4.0.0       4.0.0
    ksort                       3       standard 4.0.0       4.0.0
    ltrim                       1       standard 4.0.0       4.0.0
    mkdir                       1       standard 4.0.0       4.0.0
    phpversion                  2       standard 4.0.0       4.0.0
    preg_match                  2       pcre     4.0.0       4.0.0
    sha1_file                   2       standard 4.3.0       4.3.0
    sprintf                     26      standard 4.0.0       4.0.0
    str_replace                 1       standard 4.0.0       4.0.0
    strcasecmp                  4       Core     4.0.0       4.0.0
    stream_resolve_include_path 1       standard 5.3.2       5.3.2
    strpos                      2       standard 4.0.0       4.0.0
    strtolower                  1       standard 4.0.0       4.0.0
    substr                      2       standard 4.0.0       4.0.0
    sys_get_temp_dir            1       standard 5.2.1       5.2.1
    ucfirst                     5       standard 4.0.0       4.0.0
    version_compare             9       standard 4.0.7       4.0.7
    Total [39]                                               5.3.2

Constants Analysis

    Constant               Matches REF     EXT min/Max PHP min/Max
 C  INTL_ICU_VERSION       2       intl    2.0.0b1     5.3.7
    LIBXML_DOTTED_VERSION  1       libxml  5.1.0       5.1.0
    LIBXML_VERSION         1       libxml  5.1.0       5.1.0
 C  OPENSSL_VERSION_NUMBER 1       openssl 5.2.0       5.2.0
 C  OPENSSL_VERSION_TEXT   1       openssl 5.2.0       5.2.0
    PHP_EOL                5       Core    4.3.10      4.3.10
    PHP_VERSION            4       Core    4.0.0       4.0.0
    __DIR__                1       Core    5.3.0       5.3.0
    false                  14      Core    4.0.0       4.0.0
    null                   15      Core    4.0.0       4.0.0
    true                   10      Core    4.0.0       4.0.0
    Total [11]                                         5.3.0

Conditions Analysis

    Condition                       Matches REF     EXT min/Max PHP min/Max
    defined(INTL_ICU_VERSION)       2       intl    2.0.0b1     5.3.7
    defined(OPENSSL_VERSION_NUMBER) 1       openssl 5.2.0       5.2.0
    defined(OPENSSL_VERSION_TEXT)   1       openssl 5.2.0       5.2.0
    function_exists(curl_version)   1       curl    4.0.2       4.0.2
    Total [4]                                                   5.3.7

Requires PHP 5.3.2 (min), PHP 5.3.2 (all)

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 CompatInfo commands.

  • executed your first parse on the CompatInfo 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 CompatInfo an easy tool without to write a line of PHP code, have a look on user’s guide

  • Want to learn more about CompatInfo 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 2.26 that is really different, and want to upgrade to the new major version 4, and keep your old environment still running, have a look on migration’s guide