列出代码库中使用的PHP模块

时间:2010-02-16 20:17:24

标签: php php-extension

我需要列出给定代码库所需的所有PHP扩展。 什么是解决这个问题的最佳方法?

我最初的想法是编写一个遍历所有文件的脚本,找到所有函数并将它们与给定的扩展/函数数据库进行比较。还有其他建议吗?


更新:我已经使用grep和使用get_loaded_modules,get_extension_funcs PHP函数做了一些Bash脚本,但这个扩展正是我想要的。

3 个答案:

答案 0 :(得分:12)

一旦你学会了如何使用它,PHP CompatInfo(不是PEAR扩展)就很棒了:

  1. 转到PHP CompatInfo网站
  2. 下载并安装该工具
  3. 从其站点复制配置文件内容并将其放入名为 phpcompatinfo.json的新文件
  4. 运行以下命令(当前目录是放置phpcompatinfo.json的目录)

    phpcompatinfo analyser:run . extension

  5. 您将获得如下输出:

    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
    

答案 1 :(得分:7)

根据我的记忆,有一个PEAR包可以做到这一点:PHP_CompatInfo

  

找出最低版本和   一块片所需的扩展   要运行的代码

请参阅The Command-Line Parser以了解如何从命令行运行它,并获取一些输出示例。


(它被标记为不再维护,因此最近的PHP版本可能存在一些问题,但上次我使用它 - 也许一年前 - 它工作正常)

答案 2 :(得分:0)

作为 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