我首先要评估系统上安装的PEAR类
如果您认为项目中使用的某些Lib可能会丢失,则需要在本地下载整个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中