FAQ

FAQ – Answers to most Frequently Asked Questions

PHP_CompatInfo FAQ

What does it cost ?

You can download and use it for free. But don't delete the copyright notice. You can read terms of the PHP license.

Do you offer support ?

YES if there is no answer in this Guide and if you are ready to share some informations such as : your configuration (platform Win *nix mac, PHP version, PEAR packages installed) and perharps your script.

I found a bug, what shall I do ?

You can report it with the bug tracker at PEAR.

I found an error in data dictionaries (version 1.9.0+), what shall I do ?

Report it with the bug tracker at PEAR. If error is confirmed, a new PHP_CompatInfo release will follow.

What is PEAR ?

PEAR (an acronym for PHP Extension and Application Repository) is a framework and distribution system for reusable PHP components.

Don't forget to read also the PEAR Manual and PEAR FAQ.

I have a compatible PHP4/5 application with optional PHP5 code. How to ignore only PHP 5 code ?

If you want to ignore all PHP5 code (functions, constants, extensions), you only need to add a line on your parsing (file, directory, string) options: "ignore_versions". In this example all PHP 5.0.0 to 5.2.0 code will be ignored when parsing current directory.

<?php
require_once 'PHP/CompatInfo.php';

$dir dirname(__FILE__);
$options = array('ignore_versions' => array('5.0.0''5.2.0'));

$pci = new PHP_CompatInfo();
$res $pci->parseDir($dir$options);
var_dump($res);
?>
I don't want to have result (PHP array dump) display on the standard output

Even if it's the new behavior of API 1.8.0, you can still consumes all output events with the Null renderer. Give the null value (case insensitive), as first parameter to the class constructor.

<?php
require_once 'PHP/CompatInfo.php';

$pci = new PHP_CompatInfo('null');

$res $pci->parseData($datasource);

// display results is only produced by the line below
var_dump($res);
?>
I want to know what is the status of parsing my data source.

For a single file, it's not necessary to have a progress bar or a message wait. But when you parse a directory with many subdirectories and files, it may take some time.

Depending of interface you're running (CLI or Web) you've two ways to display a progress bar or a message wait.

If you specify a progress bar to wait and you don't have PEAR::Console_ProgressBar package installed, default use standard text messages (no error stop the process).

Wait while parsing data source ...
Wait while parsing file "C:\wamp\tmp\Services_W3C_CSSValidator-0.1.0\CSSValidator.php"
       

On CLI with pci command, give the -p|--progress switch with either bar (for a progress bar), or text (for a simple text message).

pci --summarize --progress bar --dir C:\Temp\beehiveforum082\forum
     

On CLI without pci command, use the second parameter (driver specific options) of class constructor. Give progress key with bar (for a progress bar), or text (for a simple text message). And don't forget to de-activate silent mode (default is on for behavior backward compatibility).

<?php
require_once 'PHP/CompatInfo.php';

$driverType    'csv';
$driverOptions = array('silent' => false'progress' => 'bar');

$pci = new PHP_CompatInfo($driverType$driverOptions);
?>

It will produce something like:

-  79/419 files [====>-----------------]  18.85% Elapsed Time: 00:28.93
     

For Web SAPI see the full example available in distribution into examples directory named pci180_parsefolder_tohtml.php. It used the PEAR::HTML_Progress2 package to produce a progress bar with COMET method (not AJAX).