Special thanks to Davey Safik, without who this adventure won't became a reality.
Thanks also to Christian Weiske, without who and his bug report, API 1.9.0 won't certainly born.
With API 1.8.0, there is a limitation in class (internal, and end-user defined) detection. This limitation is also valuable for lot of constants and PHP extensions.
As always, my goal was to keep a backward compatibility with previous versions, and add a simple way to support easily the ton of possible PHP extensions with their constants and classes implementation.
I thought since a long time to rewrite the full package in PHP5 with help of Reflection API, but I've not yet reached the limitation of PHP4 code.
getVersion()
getClasses()
getFunctions()
getExtensions()
getConstants()
getTokens()
getConditions()
getIgnoredFiles()
getIgnoredFunctions()
getIgnoredExtensions()
getIgnoredConstants()
As I can't imagine to provide all possible extensions support, I've added a basic list by default (see CompatInfo/func_array.php file), and let ability to :
pciconf
CLI script.
The pciconf
CLI script, presented here, is for PHP5 users only.
PHP_CompatInfo Extensions Support List build system Usage: pciconf [options] -e --enable (optional)value A comma separated list of extensions you want only () -d --disable (optional)value A comma separated list of extensions you want to disable () -s --sapi (optional)value A comma separated list of SAPI you want only (apache2handler,cgi,cli) -x --exceptions (optional)value File that provides exceptions results (exceptions.conf.php) -o --output (optional)value Target directory where to write results (@php_dir@/PHP/CompatInfo) -v --verbose (optional)value Set the verbose level (1) -V --version Print version information -h --help Show this help
Default behavior of pciconf
is to build the full list of all extensions loaded
on current platform.
pciconf --enable standard,date,xsl
pciconf --disable xdebug
Default behavior of pciconf
is to build common
server API support (apache2handler,
cgi, cli).
pciconf --sapi nsapi,cli
Default behavior of pciconf
is to build results in the same directory
where PHP_CompatInfo was installed (@php_dir@/PHP/CompatInfo).
pciconf --output /tmp
pciconf --output @php_dir@/../includes/PHP/CompatInfo
pciconf
has ability to fix errors (like elements missing, or wrong version)
with the
Exception
Rules
System.
This ERS is provided by a file (default is exception.conf.php
)
with a mandatory function named getException()
.
pciconf --exceptions /home/users/farell/myERS.php
pciconf
run in verbose mode (by default). Thats means you should have
on screen what extensions (and which versions) were found.
pciconf --verbose 0
Thank you for your attention!
Hope you liked it!
ANY QUESTIONS ?
Do you have feedback, suggestions, critics?
Don't hesitate to ask to improve this new API before stable release, planned on January 19, 2009.