You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何识别并移除核心PHP项目中的未使用文件?

检测PHP项目中未被引用文件的方案
  • 手写定制脚本

    • 先遍历项目所有PHP文件,生成完整的文件列表。
    • 逐个分析文件里的include/require/include_once/require_once语句,用正则匹配引用的路径,转成绝对路径后加入“已引用文件”列表。
    • 如果是Composer自动加载的项目,解析composer.json的autoload规则,把所有类名映射到对应文件;再扫描项目中所有use语句、类实例化等代码,找到被引用的类,对应到文件后加入“已引用文件”列表。
    • 最后对比“所有文件列表”和“已引用文件”列表,差集就是疑似未被引用的文件。
  • 使用专门的扫描工具

    • php-unused-scanner:专门针对PHP项目的未用文件/类扫描工具,支持Composer自动加载,能识别大多数静态引用关系。安装后在项目根目录直接运行命令,就能输出未被引用的文件清单。
    • pfff:一款多语言静态分析工具,对PHP的支持不错,用它的unused命令可以检测未被引用的文件,能处理一些复杂的引用场景。
  • 处理动态引用的情况

    • 像include $dynamicPath这类动态加载的代码,静态工具很难检测。可以在项目运行时记录所有被加载的文件:比如在入口文件加入register_shutdown_function(function() { file_put_contents('loaded_files.log', implode("\n", get_included_files())); });,覆盖所有业务场景运行一遍,然后对比日志里的文件和项目文件列表,找出从未被加载的文件。
  • 注意事项

    • 扫描出的文件别直接删除,先标记,然后跑一遍全量测试,确认没有功能受影响再删除。
    • 提前排除入口文件、配置文件、CLI脚本、测试用例这些肯定需要保留的文件,避免误判。
    • 一定要用Git等版本管理工具备份,删错了能及时回滚。

内容的提问来源于stack exchange,提问作者Jamal nabi ashrafi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 17:29:56