Using PHP_CompatInfo from the command line
==========================================
include::revision.txt[]


== Differences to other SAPI

Remarkable differences of the CLI SAPI compared to other SAPI:

* gets responses in a seconde without code line to write
* printing components report
* printing references informations report
* configurable thru an easy to read XML file


== Options

The list of command line options provided by the _phpci_ command can be queried anytime
by running phpci with the -h or --help switches.

----
PHPCompatInfo (cli) by Laurent Laville.

Usage:
  phpci [options]
  phpci [options] <command> [options] [args]

Options:
  --configuration=xmlFile      Read configuration from XML file
  --no-configuration           Ignore default configuration file
                               (phpcompatinfo.xml)
  -d iniSet, --ini-set=iniSet  Sets a php.ini directive value
  -v, --verbose                Output more verbose information
  -h, --help                   show this help message and exit
  --version                    show the program version and exit

Commands:
  print            Print a report of data source parsed.
  list-references  List all extensions supported.
  list             List all "elements" referenced in the data base.
  list-extensions  List all extensions referenced in the data base.
  list-interfaces  List all interfaces referenced in the data base.
  list-classes     List all classes referenced in the data base.
  list-functions   List all functions referenced in the data base.
  list-constants   List all constants referenced in the data base.
----

[grid="rows",format="csv"]
[options="header",cols="2,2,10"]
|===========================
Short Option, Long Option, Description
, --configuration, "Specify a custom XML file (which does not need to be named phpcompatinfo.xml or located into PEAR +cfg_dir+)"
, --no-configuration, "Ignore default configuration files +phpcompatinfo.xml+ or +phpcompatinfo.xml.dist+"
-d, --ini-set, "This option allows you to set a custom value for any of the configuration directives allowed in php.ini. Example: -d memory_limit=256M"
-v, --verbose, "Sets the verbose level to print more informations"
-h, --help, "With this option, you can get information about the actual list of command line options and some one line descriptions about what they do."
, --version, "Prints the version of PHP_CompatInfo and exits."
|===========================

Unless you tell it to ignore the XML configuration file, default options are sets
by the  +phpcompatinfo.xml.dist+ file if found into the PEAR +cfg_dir+ +\PHP_CompatInfo+ directory

[source,xml]
----
<?xml version="1.0" encoding="utf-8" ?>
<phpcompatinfo
    reference="PHP5"
    report="summary"
    reportFileAppend="false"
    cacheDriver="file"
    recursive="false"
    fileExtensions="php, inc, phtml"
    consoleProgress="true"
    verbose="false"
    >

    <!-- ... -->
</phpcompatinfo>
----


=== Verbose levels

==== Level 0

When you print report(s), you have on verbose level 0 (default) no extra informations.

==== Level 1

If you choose to set verbose level 1 (+-v+), your report(s) will print also some warnings messages.
Such as what extensions are loaded in your platform (defined by your __php.ini__ file),
but not available on your PHP_CompatInfo distribution.

.For example on windows platform
----
Warning messages : (2)

  Cannot load extension reference 'com_dotnet'
  Cannot load extension reference 'odbc'
----

==== Level 2

If you choose to set verbose level 2 (+-vv+), your report(s) will print both warnings messages
(as in level 1) but also files where are used components of your report(s).

.Example
----
    $ phpci -vv print --report condition \path\to\symfony-ClassLoader-2.0.15

    BASE: \path\to\symfony-ClassLoader-2.0.15

    -------------------------------------------------------------------------------
    PHP COMPAT INFO CONDITION SUMMARY
    -------------------------------------------------------------------------------
      CONDITION                             EXTENSION         PHP min/Max     COUNT
    -------------------------------------------------------------------------------
      extension_loaded                      Core              4.0.0               1
        \ApcUniversalClassLoader.php
      class_exists                          Core              4.0.0               2
        \ClassCollectionLoader.php
        \DebugUniversalClassLoader.php
      interface_exists                      Core              5.0.2               2
        \ClassCollectionLoader.php
        \DebugUniversalClassLoader.php
      function_exists                       Core              4.0.0               4
        \ClassCollectionLoader.php
        \DebugUniversalClassLoader.php
      trait_exists                          Core              5.4.0               2
        \ClassCollectionLoader.php
        \DebugUniversalClassLoader.php
    -------------------------------------------------------------------------------
    A TOTAL OF 5 CONDITIONS WERE FOUND
    REQUIRED PHP 5.4.0 (MIN)
    -------------------------------------------------------------------------------
    Time: 1 second, Memory: 8.25Mb
    -------------------------------------------------------------------------------

    Warning messages : (2)

      Cannot load extension reference 'com_dotnet'
      Cannot load extension reference 'odbc'
----

==== Level 3

If you choose to set verbose level 3 (+-vvv+), your report(s) will print both warnings messages
(as in level 1) and group results by used files of components of your report(s).

NOTE: It is usefull only when data source to parse is a directory.

.Example
----
    $ phpci -vvv print --report condition \path\to\symfony-ClassLoader-2.0.15

    BASE: \path\to\symfony-ClassLoader-2.0.15
    FILE: \ApcUniversalClassLoader.php
    -------------------------------------------------------------------------------
    PHP COMPAT INFO CONDITION SUMMARY
    -------------------------------------------------------------------------------
      CONDITION                             EXTENSION         PHP min/Max     COUNT
    -------------------------------------------------------------------------------
      extension_loaded                      Core              4.0.0               1
    -------------------------------------------------------------------------------
    A TOTAL OF 1 CONDITION WAS FOUND
    REQUIRED PHP 4.0.0 (MIN)
    -------------------------------------------------------------------------------
    Time: 0 seconds, Memory: 8.25Mb
    -------------------------------------------------------------------------------

    BASE: \path\to\symfony-ClassLoader-2.0.15
    FILE: \ClassCollectionLoader.php
    -------------------------------------------------------------------------------
    PHP COMPAT INFO CONDITION SUMMARY
    -------------------------------------------------------------------------------
      CONDITION                             EXTENSION         PHP min/Max     COUNT
    -------------------------------------------------------------------------------
      class_exists                          Core              4.0.0               1
      interface_exists                      Core              5.0.2               1
      function_exists                       Core              4.0.0               3
      trait_exists                          Core              5.4.0               1
    -------------------------------------------------------------------------------
    A TOTAL OF 4 CONDITIONS WERE FOUND
    REQUIRED PHP 5.4.0 (MIN)
    -------------------------------------------------------------------------------
    Time: 0 seconds, Memory: 8.25Mb
    -------------------------------------------------------------------------------

    BASE: \path\to\symfony-ClassLoader-2.0.15
    FILE: \DebugUniversalClassLoader.php
    -------------------------------------------------------------------------------
    PHP COMPAT INFO CONDITION SUMMARY
    -------------------------------------------------------------------------------
      CONDITION                             EXTENSION         PHP min/Max     COUNT
    -------------------------------------------------------------------------------
      class_exists                          Core              5.0.0               1
      interface_exists                      Core              5.0.2               1
      function_exists                       Core              4.0.0               1
      trait_exists                          Core              5.4.0               1
    -------------------------------------------------------------------------------
    A TOTAL OF 4 CONDITIONS WERE FOUND
    REQUIRED PHP 5.4.0 (MIN)
    -------------------------------------------------------------------------------
    Time: 0 seconds, Memory: 8.25Mb
    -------------------------------------------------------------------------------

    BASE: \path\to\symfony-ClassLoader-2.0.15
    FILE: \MapClassLoader.php
    -------------------------------------------------------------------------------
    PHP COMPAT INFO CONDITION SUMMARY
    -------------------------------------------------------------------------------
      CONDITION                             EXTENSION         PHP min/Max     COUNT
    -------------------------------------------------------------------------------
    -------------------------------------------------------------------------------
    A TOTAL OF 0 CONDITION WAS FOUND
    -------------------------------------------------------------------------------
    Time: 0 seconds, Memory: 8.25Mb
    -------------------------------------------------------------------------------

    BASE: \path\to\symfony-ClassLoader-2.0.15
    FILE: \UniversalClassLoader.php
    -------------------------------------------------------------------------------
    PHP COMPAT INFO CONDITION SUMMARY
    -------------------------------------------------------------------------------
      CONDITION                             EXTENSION         PHP min/Max     COUNT
    -------------------------------------------------------------------------------
    -------------------------------------------------------------------------------
    A TOTAL OF 0 CONDITION WAS FOUND
    -------------------------------------------------------------------------------
    Time: 0 seconds, Memory: 8.25Mb
    -------------------------------------------------------------------------------

    Warning messages : (2)

      Cannot load extension reference 'com_dotnet'
      Cannot load extension reference 'odbc'
----


== Commands

They are two categories of command:

* printing scanned sources code results
* listing database references extensions informations

=== print command

This command allow to print results of scanned sources code.
If you forget options, enter command below.
----
$ phpci print --help
----

That will show you this help screen:
----
Print a report of data source parsed.

Usage:
  phpci [options] print [options] <sourcePath>

Options:
  --reference=reference             The name of the reference to use
  --report=report                   Type of report
  --report-file=reportFile          Write the report to the specified file
                                    path
  --exclude-pattern=excludeID       Exclude components from list referenced
                                    by ID provided
  -R, --recursive                   Includes the contents of subdirectories
  --file-extensions=fileExtensions  A comma separated list of file
                                    extensions to check
  --help-reference                  List of reference available
  --help-report                     List of report available
  -h, --help                        show this help message and exit

Arguments:
  sourcePath  The data source to scan (file or directory).
----

[grid="rows",format="csv"]
[options="header",cols="2,2,10"]
|===========================
Short Option, Long Option, Description
, --reference, "This option tells what reference dictionnary to use. May be either one providing by the package distribution or your own."
, --report, "Specify what kind of report to print. See --help-report for full list."
, --report-file, "This option identify the file where results will be written."
, --exclude-pattern, "Identify a <exclude> element in the XML configuration file, that define what elements to exclude from scope."
-R, --recursive, "This option allow to parse directories recursively."
, --file-extensions, "When parsing directory, specify what file to scan."
, --help-reference, "Remember you what are reference dictionnary available in default distribution."
, --help-report, "Remember you what are reports available in default distribution."
-h, --help, "With this option, you can get information about the actual list of command line options."
|===========================

TIP: You can give one or more report at the same time.

.Example:  Printing only summary report
----
$ phpci print --report summary /path/to/source
----

.Example: Printing both summary, extension, interface, class, function, and constant reports.
----
$ phpci print --report summary extension interface class function constant /path/to/source
----

.Example: Printing both function and constant reports.
----
$ phpci print --report function --report constant /path/to/source
----

=== list-references command

This command allow to print the list of documented extensions available with your version of PHP_CompatInfo,
and specify those which are currently loaded (*L* in front or their names)

If you forget options, enter command below.
----
$ phpci list-references --help
----

That will show you this help screen:
----
List all extensions supported.

Usage:
  phpci [options] list-references [options]

Options:
  --report-file=reportFile  Write the report to the specified file path
  -h, --help                show this help message and exit
----

[grid="rows",format="csv"]
[options="header",cols="2,2,10"]
|===========================
Short Option, Long Option, Description
, --report-file, "This option identify the file where results will be written."
-h, --help, "With this option, you can get information about the actual list of command line options."
|===========================

.Example
----
$ phpci list-references
----

----
    -------------------------------------------------------------------------------
    PHP COMPAT INFO DATABASE REFERENCE
    -------------------------------------------------------------------------------
      EXTENSIONS                            VERSION <1>       PHP min/Max <2>
    -------------------------------------------------------------------------------
      amqp                                  1.0.7             5.2.0
      apc                                   3.1.13            4.3.0
    L bcmath                                                  4.0.0
    L bz2                                                     4.0.4
    L calendar                                                4.0.0
    L Core                                  5.4.7             4.0.0
    L ctype                                                   4.0.4
    L curl                                                    4.0.2
    L date                                                    4.0.0
    L dom                                   20031129          5.0.0
      enchant                               1.1.0             5.0.0
    L ereg                                                    4.0.0/5.3.0
      exif                                                    4.0.1
    L fileinfo                              1.0.5             4.0.0
    L filter                                0.11.0            4.0.0
    L ftp                                                     4.0.0
    L gd                                                      4.0.0
      geoip                                 1.0.8             4.3.0
    L gettext                                                 4.0.0
      gmp                                                     5.1.0
    L hash                                  1.0               4.0.0
    L iconv                                                   4.0.5
    L imap                                                    4.0.0
      inclued                               0.1.3             5.1.0
      intl                                  2.0.1             5.2.0
    L json                                  1.2.1             5.2.0
      ldap                                                    4.0.0
    L libxml                                                  5.0.0
      lzf                                   1.6.2             4.0.0
      mailparse                             2.1.6             4.3.0
    L mbstring                                                4.0.6
    L mcrypt                                                  4.0.0
      memcache                              3.0.6             4.3.3
      memcached                             2.1.0             5.2.0
    L mhash                                                   4.0.0/5.2.17
      mongo                                 1.2.12            5.0.0
      mssql                                                   4.0.0
    L mysql                                 1.0               4.0.0
    L mysqli                                0.1               5.0.0
    L OAuth                                 1.2.2             5.1.0
    L openssl                                                 4.0.4
      pcntl                                                   4.1.0
    L pcre                                                    4.0.0
    L PDO                                   1.0.4dev          5.1.0
      pgsql                                                   4.0.0
    L Phar                                  2.0.1             5.2.0
      posix                                 306939            4.0.0
      readline                              2.0.1             4.0.0
      recode                                2.0.1             4.0.0
    L Reflection                                              5.0.0
    L session                                                 4.0.0
    L shmop                                                   4.0.0
    L SimpleXML                             0.1               5.0.0
      snmp                                                    4.0.0
    L soap                                                    5.0.0
    L sockets                                                 4.1.0
      solr                                  1.0.2             5.2.3
      sphinx                                1.2.0             5.1.3
    L SPL                                   0.2               5.0.0
    L SQLite                                2.0-dev           5.0.0
    L sqlite3                               0.7               5.3.0
      ssh2                                  0.11.3            4.0.0
    L standard                              5.4.7             4.0.0
      sysvmsg                               306939            4.3.0
      sysvsem                                                 4.0.0
      sysvshm                                                 4.0.0
    L tidy                                  2.0               4.3.0
    L tokenizer                             0.1               4.2.0
    L wddx                                                    4.0.0
      XCache                                2.0.1             4.3.0
    L xdebug                                2.2.1             4.3.0
      xhprof                                0.9.2             5.2.0
    L xml                                                     4.0.0
    L xmlreader                             0.1               5.0.0
    L xmlrpc                                0.51              4.1.0
    L xmlwriter                             0.1               5.1.2
    L xsl                                   0.1               5.0.0
      yaml                                  1.1.0             5.2.0
    L zip                                   1.11.0            4.3.0
    L zlib                                  2.0               4.3.0
    -------------------------------------------------------------------------------
    A TOTAL OF 80 EXTENSIONS WERE FOUND AND 50 LOADED
    -------------------------------------------------------------------------------
    Time: 0 seconds, Memory: 5.00Mb
    -------------------------------------------------------------------------------
----

<1> This column specify the version of extension that was documented
<2> This column specify which are the php versions (minimum and maximum) supported by the extension

=== list command

This command allow to combine one or more list-* command.

WARNING: results may be huge

If you forget options, enter command below.
----
$ phpci list --help
----

That will show you this help screen:
----
List all "elements" referenced in the data base.

Usage:
  phpci [options] list [options] <element...>

Options:
  --reference=reference     The name of the reference to use
  --report-file=reportFile  Write the report to the specified file path
  --help-reference          List of reference available
  -h, --help                show this help message and exit

Arguments:
  element  May be either "extensions", "interfaces", "classes", "functions"
           or "constants"
----

[grid="rows",format="csv"]
[options="header",cols="2,2,10"]
|===========================
Short Option, Long Option, Description
, --reference, "This option tells what reference dictionnary to use. May be either one providing by the package distribution or your own."
, --report-file, "This option identify the file where results will be written."
, --help-reference, "Remember you what are reference dictionnary available in default distribution."
-h, --help, "With this option, you can get information about the actual list of command line options."
|===========================

.Example: list both interfaces and classes of all extensions supported by PHP_Compatinfo
----
$ phpci list interfaces classes
----

----
    -------------------------------------------------------------------------------
    PHP COMPAT INFO INTERFACES REFERENCE
    -------------------------------------------------------------------------------
    INTERFACES                                   EXTENSION          PHP min/Max
    -------------------------------------------------------------------------------
    ArrayAccess                                  SPL-5.1.0          5.1.0
    Countable                                    SPL-5.1.0          5.1.0
    Iterator                                     SPL-5.1.0          5.1.0
    IteratorAggregate                            SPL-5.1.0          5.1.0
    JsonSerializable                             json-5.4.0         5.4.0
    OuterIterator                                SPL-5.1.0          5.1.0
    RecursiveIterator                            SPL-5.1.0          5.1.0
    Reflector                                    Reflection         5.0.0
    SeekableIterator                             SPL-5.1.0          5.1.0
    Serializable                                 SPL-5.1.0          5.1.0
    SessionHandlerInterface                      session            5.4.0
    SplObserver                                  SPL-5.1.0          5.1.0
    SplSubject                                   SPL-5.1.0          5.1.0
    Traversable                                  SPL-5.1.0          5.1.0
    -------------------------------------------------------------------------------
    A TOTAL OF 14 INTERFACES WERE FOUND
    -------------------------------------------------------------------------------
    Time: 0 seconds, Memory: 9.50Mb
    -------------------------------------------------------------------------------


    -------------------------------------------------------------------------------
    PHP COMPAT INFO CLASSES REFERENCE
    -------------------------------------------------------------------------------
    CLASSES                                      EXTENSION          PHP min/Max
    -------------------------------------------------------------------------------
    AMQPChannel                                  amqp-1.0.0         5.2.0
    AMQPConnection                               amqp-0.1.0         5.2.0
    AMQPEnvelope                                 amqp-1.0.0         5.2.0
    AMQPExchange                                 amqp-0.1.0         5.2.0
    AMQPQueue                                    amqp-0.1.0         5.2.0
    APCIterator                                  apc-3.1.1          5.0.0
    AppendIterator                               SPL-5.1.0          5.1.0
    ArrayIterator                                SPL-5.0.0          5.0.0
    ArrayObject                                  SPL-5.0.0          5.0.0
    BadFunctionCallException                     SPL-5.1.0          5.1.0
    BadMethodCallException                       SPL-5.1.0          5.1.0
    CachingIterator                              SPL-5.0.0          5.0.0
    CallbackFilterIterator                       SPL-5.4.0          5.4.0
    Closure                                      Core-5.3.0         5.3.0
    Collator                                     intl-1.0.0beta     5.2.0
    DOMAttr                                      dom                5.0.0

    ... <more results> ...

    mysqli_warning                               mysqli             5.0.0
    php_user_filter                              standard-5.0.0     5.0.0
    stdClass                                     Core-4.0.0         4.0.0
    tidy                                         tidy-0.5.2         4.3.0
    tidyNode                                     tidy-0.7.0         5.0.1
    -------------------------------------------------------------------------------
    A TOTAL OF 208 CLASSES WERE FOUND
    -------------------------------------------------------------------------------
    Time: 0 seconds, Memory: 9.50Mb
    -------------------------------------------------------------------------------
----

=== list-extensions command

This command allow to print the list of documented extensions available with your version of PHP_CompatInfo,
and loaded on your platform.

If you forget options, enter command below.
----
$ phpci list-extensions --help
----

That will show you this help screen:
----
List all extensions referenced in the data base.

Usage:
  phpci [options] list-extensions [options] <extension>

Options:
  --reference=reference     The name of the reference to use
  --report-file=reportFile  Write the report to the specified file path
  --help-reference          List of reference available
  -h, --help                show this help message and exit

Arguments:
  extension  (optional) Limit output only to this extension
----

[grid="rows",format="csv"]
[options="header",cols="2,2,10"]
|===========================
Short Option, Long Option, Description
, --reference, "This option tells what reference dictionnary to use. May be either one providing by the package distribution or your own."
, --report-file, "This option identify the file where results will be written."
, --help-reference, "Remember you what are reference dictionnary available in default distribution."
-h, --help, "With this option, you can get information about the actual list of command line options."
|===========================

.Example
----
$ phpci list-extensions
----

----
    -------------------------------------------------------------------------------
    PHP COMPAT INFO EXTENSIONS REFERENCE
    -------------------------------------------------------------------------------
    EXTENSIONS                                   EXTENSION <1>      PHP min/Max <2>
    -------------------------------------------------------------------------------
    Core                                         5.4.7              4.0.0
    PDO                                          1.0.4dev           5.1.0
    Phar                                         2.0.1              5.2.0
    Reflection                                                      5.0.0
    SPL                                          0.2                5.0.0
    SimpleXML                                    0.1                5.0.0
    bcmath                                                          4.0.0
    bz2                                                             4.0.4
    calendar                                                        4.0.0
    ctype                                                           4.0.4
    curl                                                            4.0.2
    date                                                            4.0.0
    dom                                          20031129           5.0.0
    ereg                                                            4.0.0/5.3.0
    fileinfo                                     1.0.5-dev          4.0.0
    filter                                       0.11.0             5.2.0
    ftp                                                             4.0.0
    gd                                                              4.0.0
    gettext                                                         4.0.0
    hash                                         1.0                5.1.2
    iconv                                                           4.0.5
    imap                                                            4.0.0
    json                                         1.2.1              5.2.0
    libxml                                                          5.0.0
    mbstring                                                        4.0.6
    mcrypt                                                          4.0.0
    mhash                                                           4.0.0
    mysql                                        1.0                4.0.0
    mysqli                                       0.1                5.0.0
    OAuth                                        1.0-dev            5.1.0
    openssl                                                         4.0.4
    pcre                                                            4.0.0
    session                                                         4.0.0
    shmop                                                           4.0.0
    soap                                                            5.0.0
    sockets                                                         4.1.0
    sqlite3                                      0.7-dev            5.3.0
    standard                                     5.4.7              4.0.0
    tidy                                         2.0                4.0.0
    tokenizer                                    0.1                4.2.0
    wddx                                                            4.0.0
    xdebug                                       2.1.0              5.2.0
    xml                                                             4.0.0
    xmlreader                                    0.1                5.0.0
    xmlrpc                                       0.51               4.1.0
    xmlwriter                                    0.1                5.1.2
    xsl                                          0.1                5.0.0
    zlib                                         1.1                4.0.0
    -------------------------------------------------------------------------------
    A TOTAL OF 48 EXTENSIONS WERE FOUND
    -------------------------------------------------------------------------------
    Time: 0 seconds, Memory: 6.25Mb
    -------------------------------------------------------------------------------
----

<1> This column specify the version of extension that was documented
<2> This column specify what are the php versions (minimum and maximum) supported by the extension

[TIP]
.You can filter result by extension
=====================================================================
Example: if you want only SPL extension, enter command below.
----
$ phpci list-extensions SPL
----
=====================================================================

=== list-interfaces command

This command allow to print the list of documented interfaces available with your version of PHP_CompatInfo,
from your extensions loaded (or defined into XML configuration file).

If you forget options, enter command below.
----
$ phpci list-interfaces --help
----

That will show you this help screen:
----
List all interfaces referenced in the data base.

Usage:
  phpci [options] list-interfaces [options] <extension>

Options:
  --reference=reference     The name of the reference to use
  --report-file=reportFile  Write the report to the specified file path
  --help-reference          List of reference available
  -h, --help                show this help message and exit

Arguments:
  extension  (optional) Limit output only to this extension
  version    (optional) Limit output to this version
  condition  (optional) Limit output on a version condition
----

[grid="rows",format="csv"]
[options="header",cols="2,2,10"]
|===========================
Short Option, Long Option, Description
, --reference, "This option tells what reference dictionnary to use. May be either one providing by the package distribution or your own."
, --report-file, "This option identify the file where results will be written."
, --help-reference, "Remember you what are reference dictionnary available in default distribution."
-h, --help, "With this option, you can get information about the actual list of command line options."
|===========================

.Example
----
$ phpci list-interfaces
----

----
    -------------------------------------------------------------------------------
    PHP COMPAT INFO INTERFACES REFERENCE
    -------------------------------------------------------------------------------
    INTERFACES                                   EXTENSION <1>      PHP min/Max <2>
    -------------------------------------------------------------------------------
    ArrayAccess                                  SPL-5.1.0          5.1.0
    Countable                                    SPL-5.1.0          5.1.0
    Iterator                                     SPL-5.1.0          5.1.0
    IteratorAggregate                            SPL-5.1.0          5.1.0
    JsonSerializable                             json-5.4.0         5.4.0
    OuterIterator                                SPL-5.1.0          5.1.0
    RecursiveIterator                            SPL-5.1.0          5.1.0
    Reflector                                    Reflection         5.0.0
    SeekableIterator                             SPL-5.1.0          5.1.0
    Serializable                                 SPL-5.1.0          5.1.0
    SessionHandlerInterface                      session            5.4.0
    SplObserver                                  SPL-5.1.0          5.1.0
    SplSubject                                   SPL-5.1.0          5.1.0
    Traversable                                  SPL-5.1.0          5.1.0
    -------------------------------------------------------------------------------
    A TOTAL OF 14 INTERFACES WERE FOUND
    -------------------------------------------------------------------------------
    Time: 0 seconds, Memory: 6.25Mb
    -------------------------------------------------------------------------------
----

<1> This column specify the name of extension that provide these interfaces
<2> This column specify what are the php versions (minimum and maximum) supported by the interface


[TIP]
.You can filter result by extension
=====================================================================
Example: if you want only SPL extension interfaces, enter command below.
----
$ phpci list-interfaces SPL
----
=====================================================================

[TIP]
.You can filter result by extension and version (php or extension) with a particular relationship
=====================================================================
Example: if you want only Core interfaces, supported by all PHP versions until 5.1.0,
 enter command below.
----
$ phpci list-interfaces core php_5.1.0
----

Example: if you want only standard interfaces, came only with PHP 5.0.0,
 enter command below.
----
$ phpci list-interfaces standard php_5.0.0 eq
----

Example: if you want only apc interfaces, available with all apc versions since 3.1.0,
 enter command below.
----
$ phpci list-interfaces apc 3.1.0 ge
----
=====================================================================

=== list-classes command

This command allow to print the list of documented classes available with your version of PHP_CompatInfo,
from your extensions loaded (or defined into XML configuration file).

If you forget options, enter command below.
----
$ phpci list-classes --help
----

That will show you this help screen:
----
List all classes referenced in the data base.

Usage:
  phpci [options] list-classes [options] <extension>

Options:
  --reference=reference     The name of the reference to use
  --report-file=reportFile  Write the report to the specified file path
  --help-reference          List of reference available
  -h, --help                show this help message and exit

Arguments:
  extension  (optional) Limit output only to this extension
  version    (optional) Limit output to this version
  condition  (optional) Limit output on a version condition
----

[grid="rows",format="csv"]
[options="header",cols="2,2,10"]
|===========================
Short Option, Long Option, Description
, --reference, "This option tells what reference dictionnary to use. May be either one providing by the package distribution or your own."
, --report-file, "This option identify the file where results will be written."
, --help-reference, "Remember you what are reference dictionnary available in default distribution."
-h, --help, "With this option, you can get information about the actual list of command line options."
|===========================

.Example
----
$ phpci list-classes
----

----
    -------------------------------------------------------------------------------
    PHP COMPAT INFO CLASSES REFERENCE
    -------------------------------------------------------------------------------
    CLASSES                                      EXTENSION <1>      PHP min/Max <2>
    -------------------------------------------------------------------------------
    AppendIterator                               SPL-5.1.0          5.1.0
    ArrayIterator                                SPL-5.0.0          5.0.0
    ArrayObject                                  SPL-5.0.0          5.0.0
    BadFunctionCallException                     SPL-5.1.0          5.1.0
    BadMethodCallException                       SPL-5.1.0          5.1.0
    CachingIterator                              SPL-5.0.0          5.0.0
    CallbackFilterIterator                       SPL-5.4.0          5.4.0
    Closure                                      Core-5.3.0         5.3.0

    ... <more results> ...

    SplQueue                                     SPL-5.3.0          5.3.0
    SplStack                                     SPL-5.3.0          5.3.0
    SplTempFileObject                            SPL-5.1.2          5.1.2
    UnderflowException                           SPL-5.1.0          5.1.0
    UnexpectedValueException                     SPL-5.1.0          5.1.0
    XMLReader                                    xmlreader          5.0.0
    XMLWriter                                    xmlwriter          5.1.2
    ZipArchive                                   zip-1.6.0          5.2.0
    __PHP_Incomplete_Class                       standard-4.0.0     4.0.0
    php_user_filter                              standard-5.0.0     5.0.0
    stdClass                                     Core-4.0.0         4.0.0
    -------------------------------------------------------------------------------
    A TOTAL OF 118 CLASSES WERE FOUND
    -------------------------------------------------------------------------------
    Time: 0 seconds, Memory: 6.25Mb
    -------------------------------------------------------------------------------
----

<1> This column specify the name of extension that provide these classes
<2> This column specify what are the php versions (minimum and maximum) supported by the class

[TIP]
.You can filter result by extension
=====================================================================
Example: if you want only SPL extension classes, enter command below.
----
$ phpci list-classes SPL
----
=====================================================================

[TIP]
.You can filter result by extension and version (php or extension) with a particular relationship
=====================================================================
Example: if you want only Core classes, supported by all PHP versions until 5.1.0,
 enter command below.
----
$ phpci list-classes core php_5.1.0
----

Example: if you want only standard classes, came only with PHP 5.0.0,
 enter command below.
----
$ phpci list-classes standard php_5.0.0 eq
----

Example: if you want only apc classes, available with all apc versions after 3.0.0,
 enter command below.
----
$ phpci list-classes apc 3.0.0 gt
----
=====================================================================

=== list-functions command

This command allow to print the list of documented functions available with your version of PHP_CompatInfo,
from your extensions loaded (or defined into XML configuration file).

If you forget options, enter command below.
----
$ phpci list-functions --help
----

That will show you this help screen:
----
List all functions referenced in the data base.

Usage:
  phpci [options] list-functions [options] <extension>

Options:
  --reference=reference     The name of the reference to use
  --report-file=reportFile  Write the report to the specified file path
  --help-reference          List of reference available
  -h, --help                show this help message and exit

Arguments:
  extension  (optional) Limit output only to this extension
  version    (optional) Limit output to this version
  condition  (optional) Limit output on a version condition
----

[grid="rows",format="csv"]
[options="header",cols="2,2,10"]
|===========================
Short Option, Long Option, Description
, --reference, "This option tells what reference dictionnary to use. May be either one providing by the package distribution or your own."
, --report-file, "This option identify the file where results will be written."
, --help-reference, "Remember you what are reference dictionnary available in default distribution."
-h, --help, "With this option, you can get information about the actual list of command line options."
|===========================

.Example
----
$ phpci list-functions
----

----
    -------------------------------------------------------------------------------
    PHP COMPAT INFO FUNCTIONS REFERENCE
    -------------------------------------------------------------------------------
    FUNCTIONS                                    EXTENSION <1>      PHP min/Max <2>
    -------------------------------------------------------------------------------
    abs                                          standard-4.0.0     4.0.0
    acos                                         standard-4.0.0     4.0.0
    acosh                                        standard-4.0.7     4.0.7
    addcslashes                                  standard-4.0.0     4.0.0
    addslashes                                   standard-4.0.0     4.0.0
    array_change_key_case                        standard-4.2.0     4.2.0
    array_chunk                                  standard-4.2.0     4.2.0
    array_combine                                standard-5.0.0     5.0.0
    
    ... <more results> ...

    zend_logo_guid                               standard-4.0.0     4.0.0
    zend_thread_id                               Core-5.0.0         5.0.0
    zend_version                                 Core-4.0.0         4.0.0
    zip_close                                    zip-1.0            4.3.0
    zip_entry_close                              zip-1.0            4.3.0
    zip_entry_compressedsize                     zip-1.0            4.3.0
    zip_entry_compressionmethod                  zip-1.0            4.3.0
    zip_entry_filesize                           zip-1.0            4.3.0
    zip_entry_name                               zip-1.0            4.3.0
    zip_entry_open                               zip-1.0            4.3.0
    zip_entry_read                               zip-1.0            4.3.0
    zip_open                                     zip-1.0            4.3.0
    zip_read                                     zip-1.0            4.3.0
    zlib_decode                                  zlib-2.0           5.4.0
    zlib_encode                                  zlib-2.0           5.4.0
    zlib_get_coding_type                         zlib-1.0           4.3.2
    -------------------------------------------------------------------------------
    A TOTAL OF 1063 FUNCTIONS WERE FOUND
    -------------------------------------------------------------------------------
    Time: 1 second, Memory: 6.25Mb
    -------------------------------------------------------------------------------
----

<1> This column specify the name of extension that provide these functions
<2> This column specify what are the php versions (minimum and maximum) supported by the function

[TIP]
.You can filter result by extension
=====================================================================
Example: if you want only SPL extension functions, enter command below.
----
$ phpci list-functions SPL
----
=====================================================================

[TIP]
.You can filter result by extension and version (php or extension) with a particular relationship
=====================================================================
Example: if you want only json functions, supported by all PHP versions until 5.2.0,
 enter command below.
----
$ phpci list-functions json php_5.2.0
----

Example: if you want only json functions, came only with PHP 5.3.0,
 enter command below.
----
$ phpci list-functions json php_5.3.0 eq
----

Example: if you want only apc functions, available with all apc versions before 3.0.0,
 enter command below.
----
$ phpci list-functions apc 3.0.0 lt
----
=====================================================================

=== list-constants command

This command allow to print the list of documented constants available with your version of PHP_CompatInfo,
from your extensions loaded (or defined into XML configuration file).

If you forget options, enter command below.
----
$ phpci list-constants --help
----

That will show you this help screen:
----
List all constants referenced in the data base.

Usage:
  phpci [options] list-constants [options] <extension>

Options:
  --reference=reference     The name of the reference to use
  --report-file=reportFile  Write the report to the specified file path
  --help-reference          List of reference available
  -h, --help                show this help message and exit

Arguments:
  extension  (optional) Limit output only to this extension
  version    (optional) Limit output to this version
  condition  (optional) Limit output on a version condition
----

[grid="rows",format="csv"]
[options="header",cols="2,2,10"]
|===========================
Short Option, Long Option, Description
, --reference, "This option tells what reference dictionnary to use. May be either one providing by the package distribution or your own."
, --report-file, "This option identify the file where results will be written."
, --help-reference, "Remember you what are reference dictionnary available in default distribution."
-h, --help, "With this option, you can get information about the actual list of command line options."
|===========================

.Example
----
$ phpci list-constants
----

----
    -------------------------------------------------------------------------------
    PHP COMPAT INFO CONSTANTS REFERENCE
    -------------------------------------------------------------------------------
    CONSTANTS                                    EXTENSION <1>      PHP min/Max <2>
    -------------------------------------------------------------------------------
    ABDAY_1                                      standard-4.1.0     4.1.0
    ABDAY_2                                      standard-4.1.0     4.1.0
    ABDAY_3                                      standard-4.1.0     4.1.0
    ABDAY_4                                      standard-4.1.0     4.1.0
    ABDAY_5                                      standard-4.1.0     4.1.0
    
    ... <more results> ...

    STREAM_ENFORCE_SAFE_MODE                     standard-4.0.0    4.0.0/5.3.17

    ... <more results> ...

    ZEND_DEBUG_BUILD                             Core-5.3.0         5.3.0
    ZEND_MULTIBYTE                               Core-5.3.4         5.3.4/5.3.17
    ZEND_THREAD_SAFE                             Core-4.0.0         4.0.0
    ZLIB_ENCODING_DEFLATE                        zlib-2.0           5.4.0
    ZLIB_ENCODING_GZIP                           zlib-2.0           5.4.0
    ZLIB_ENCODING_RAW                            zlib-2.0           5.4.0
    __CLASS__                                    Core-4.3.0         4.3.0
    __COMPILER_HALT_OFFSET__                     Core-5.1.0         5.1.0
    __DIR__                                      Core-5.3.0         5.3.0
    __FILE__                                     Core-4.0.0         4.0.0
    __FUNCTION__                                 Core-4.3.0         4.3.0
    __LINE__                                     Core-4.0.0         4.0.0
    __METHOD__                                   Core-5.0.0         5.0.0
    __NAMESPACE__                                Core-5.3.0         5.3.0
    __TRAIT__                                    Core-5.4.0         5.4.0
    -------------------------------------------------------------------------------
    A TOTAL OF 914 CONSTANTS WERE FOUND
    -------------------------------------------------------------------------------
    Time: 0 seconds, Memory: 6.25Mb
    -------------------------------------------------------------------------------
----

<1> This column specify the name of extension that provide these constants
<2> This column specify what are the php versions (minimum and maximum) supported by the constant

[TIP]
.You can filter result by extension
=====================================================================
Example: if you want only SPL extension constants, enter command below.
----
$ phpci list-constants SPL
----
=====================================================================

[TIP]
.You can filter result by extension and version (php or extension) with a particular relationship
=====================================================================
Example: if you want only json constants, supported by all PHP versions until 5.3.0,
 enter command below.
----
$ phpci list-constants json php_5.3.0
----

Example: if you want only json constants, came only with PHP 5.4.0,
 enter command below.
----
$ phpci list-constants json php_5.4.0 eq
----

Example: if you want only apc constants, available with all apc versions before 3.2.0,
 enter command below.
----
$ phpci list-constants apc 3.2.0 lt
----
=====================================================================
