【问题标题】:List used PHP modules in code base列出代码库中使用的 PHP 模块
【发布时间】:2011-01-17 13:48:04
【问题描述】:

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

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


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

【问题讨论】:

标签: php php-extension


【解决方案1】:

据我所知,有一个 PEAR 包可以做到这一点:PHP_CompatInfo

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

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


(它被标记为不再维护,因此最近版本的 PHP 可能会出现一些问题,但我上次使用它时 - 可能是一年前 - 它运行良好)

【讨论】:

【解决方案2】:

一旦你学会了如何使用 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/ 目录,但我找不到。
  • 好的,对于那些遇到一点麻烦的人来说,这就是我所做的。你可以把它 (phpcompatinof.json) 放在你的 etc 文件夹 (linux) /etc/ 中,它就会运行。
  • 我刚刚编辑了答案以明确 phpcompatinfo.json 是要创建的新文件,而不是现有文件
  • 很好的答案!为什么几年前我还没有找到?
  • 基本使用不再需要 phpcompatinfo.json 文件,文档已更新。现在你只需要安装工具并执行phpcompatinfo analyser:run .
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 2020-07-22
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    相关资源
    最近更新 更多