【发布时间】:2011-01-17 13:48:04
【问题描述】:
我需要列出给定代码库所需的所有 PHP 扩展。 解决这个问题的最佳方法是什么?
我最初的想法是编写一个脚本来遍历所有文件并找到所有函数并将它们与给定的扩展/函数数据库进行比较。还有其他建议吗?
更新:我已经用 grep 和 get_loaded_modules、get_extension_funcs PHP 函数做了一些 Bash 脚本,但这个扩展正是我想要的。
【问题讨论】:
标签: php php-extension
我需要列出给定代码库所需的所有 PHP 扩展。 解决这个问题的最佳方法是什么?
我最初的想法是编写一个脚本来遍历所有文件并找到所有函数并将它们与给定的扩展/函数数据库进行比较。还有其他建议吗?
更新:我已经用 grep 和 get_loaded_modules、get_extension_funcs PHP 函数做了一些 Bash 脚本,但这个扩展正是我想要的。
【问题讨论】:
标签: php php-extension
据我所知,有一个 PEAR 包可以做到这一点:PHP_CompatInfo:
找出最低版本和 一块所需的扩展 运行代码
请参阅The Command-Line Parser 以了解如何从命令行运行它,并获取一些输出示例。
(它被标记为不再维护,因此最近版本的 PHP 可能会出现一些问题,但我上次使用它时 - 可能是一年前 - 它运行良好)
【讨论】:
一旦你学会了如何使用 PHP CompatInfo(不是 PEAR 扩展),它就很棒:
运行以下命令(当前目录为放置phpcompatinfo.json的目录)
phpcompatinfo analyser:run . extension
你会得到这样的输出:
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
【讨论】:
phpcompatinfo.json 在哪里?我们是否必须制作文件或替换现有文件?上面写着src/ 目录,但我找不到。
/etc/ 中,它就会运行。
phpcompatinfo analyser:run .
作为 PHP CompatInfo 的替代方案,我为 PHP 7 开发了一个类似的工具。它没有提供像 CompatInfo 那样详细的信息,但它确实列出了您的项目所需的扩展。
见:https://github.com/RogerGee/php-ext-depends
示例用法:
$ 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
【讨论】: