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

15

我需要列出给定代码库所需的所有PHP扩展名。如何最好地解决这个问题?

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


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


这个回答是否解决了您的问题?如何自动确定项目使用了哪些PHP扩展? - kdmitry
3个回答

13

PHP CompatInfo (不是PEAR扩展) 学会使用后非常棒:

  1. 访问 PHP CompatInfo 网站
  2. 下载并安装工具
  3. 从该网站复制配置文件内容并将其放入名为 phpcompatinfo.json 的新文件中
  4. 运行以下命令(当前目录为放置 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/”目录下,但我找不到它。 - Philll_t
好的,所以对于那些遇到问题的人,这是我做的。你只需将它(phpcompatinof.json)放在你的etc文件夹(Linux) /etc/,它就会运行。 - Philll_t
1
我刚刚编辑了答案,以使其更清晰,即phpcompatinfo.json是一个新文件需要创建,而不是现有的文件。 - hegemon
太棒了!我为什么多年前没有发现这个答案呢? - halfpastfour.am
1
phpcompatinfo.json文件在基本使用中不再需要,文档已经更新。现在您只需安装该工具并执行“phpcompatinfo analyser:run .”即可。 - Cécile Fecherolle

7
据我所记,有一个PEAR包可以实现这个功能:PHP_CompatInfo

了解代码运行所需的最低版本和扩展

请查看命令行解析器,以了解如何从命令行运行它,并获取一些输出示例。
(它被标记为不再维护,因此可能会在最近的PHP版本中出现一些问题,但上次我使用它是大约一年前,它工作得很好)

1
PHP_CompatInfo的最新版本(2013年12月)可从http://bartlett.laurent-laville.org/获取。 - MV.

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接