I need to list all PHP extensions that's required by a given cod开发者_开发问答e base. What would be the best way to tackle this problem?
My initial thought is to write a script that goes through all files and find all functions and compare them to a given extension/function database. Any other suggestions?
Update: I already did some Bash script with grep and using get_loaded_modules, get_extension_funcs PHP functions, but this extension is exactly what I was looking for.
PHP CompatInfo (not the PEAR extension) is great once you learn how to use it:
- Go to PHP CompatInfo site
- Download and install the tool
- Copy the configuration file contents from their site and put it into a new file named phpcompatinfo.json
run the following command (current dir being the directory where phpcompatinfo.json is placed)
phpcompatinfo analyser:run . extension
You will get an output like this:
Extensions Analysis
Extension REF EXT min/Max PHP min/Max
Core 4.2.0 4.2.0
PDO 5.1.0 5.1.0
Reflection 5.0.0 5.0.0
calendar 4.0.0 4.0.0
date 5.3.0 5.3.0
filter 0.11.0 5.0.0
gettext 4.0.0 4.0.0
iconv 4.0.5 4.0.5
json 5.4.0 5.4.0
mbstring 4.4.3 4.4.3
pcre 4.0.0 4.0.0
session 4.0.3 4.0.3
spl 5.4.0 5.4.0
standard 5.5.0 5.5.0
Total [14] 5.5.0
There is a PEAR package that does that, from what I remember : PHP_CompatInfo
:
Find out the minimum version and the extensions required for a piece of code to run
See The Command-Line Parser to know how to run it from the Command Line, and to get some examples of output.
(It's marked as not maintained anymore, so there might be some troubles with recent versions of PHP, but last time I used it -- maybe one year ago -- it worked fine)
As an alternative to PHP CompatInfo, I've developed a tool for PHP 7 that works similarly. It doesn't provide as much detailed information as CompatInfo, but it does list the extensions required by your project.
See: https://github.com/RogerGee/php-ext-depends
Example usage:
$ php depends.php --suffix .php ~/code/open-source/drupal/core
Core (builtin)
ctype
curl
date (builtin)
dom
filter
hash
iconv
json
libxml
pcre (builtin)
PDO
posix
readline
Reflection (builtin)
session
SimpleXML
SPL (builtin)
standard (builtin)
xml
zlib
精彩评论