php - 查找项目中需要的所有 PEAR 包(源代码)

标签 php composer-php pear usage-statistics

我遇到了一个问题,我需要一个项目中需要(=使用)的所有 PEAR 包的列表。 有没有一种工具可以让我通过简单地阅读代码来获得我的源代码中使用的所有 PEAR 包的列表? 阅读所有已安装的软件包是不够的,我真的只需要真正使用的那些。 我需要这个,这样我就可以升级软件包,或者更好 - 用可通过 composer 安装的新库替换它们。

我遇到了 PEAR 包 PHP_CompatInfo但这并没有给我很好的结果,而且它也只列出了在插件本身中注册的包。

最佳答案

我会首先评估系统上安装了哪些 PEAR 类

如果您认为项目中使用的某些库可能丢失,您需要在本地下载整个 Pear 存储库

下载所有包执行:

pear config-set preferred_state alpha
pear remote-list | awk '{print $1}' > tmp-list ; tail -n +5 tmp-list > pear-list ; rm tmp-list
cat pear-list | xargs -n 1 pear install

然后创建所有类的列表:

cd /usr/share/php #( or different path to pear libs )

find . ! -path "*/tests/*" ! -path "*/examples/*" -name "*.php" -type f | xargs grep -Pho "^class ([a-zA-Z0-9_]+)" | sed -e "s/^class //" -e "" > all_pear.txt

这将创建保存到 all_pear.txt 中的所有 Pear 类的列表

然后我会在我的代码中搜索所有引用

cd my_project;

while read line; do find . -name "*.php" -type f | xargs grep -Pho $line; done < path/to/all_pear.txt | sort | uniq > used_classes.txt

这将创建项目中使用的所有 PEAR 类的列表,并将列表保存到文件 used_classes.txt

关于php - 查找项目中需要的所有 PEAR 包(源代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39073882/

相关文章:

javascript - 使用 PHP 的 Google 云消息传递 (GCM)

php - PHP中如何分析PHPDoc注释?

php - $GLOBALS 上的 foreach 函数产生 fatal error

PHP:使用 optgroup 进行动态下拉

php - composer 中 require 和 install 与 create-project 之间的区别

composer-php - Composer 从自托管的 GitLab 实例创建项目

laravel - Laravel 5.4 和 PHP 7 的 Composer 更新 "Class Name must be a valid object or a string"

php - 在本地项目上安装 PEAR?

php - 调用未定义的方法 MDB2_Error::setFetchMode()

php - 安装 Predis 错误 : Download of "nrk/Predis" succeeded, 但它不是有效的包存档