composer dump-autoload用于重新生成自动加载文件,更新autoload配置、新增类文件或部署时需执行,可解决类找不到问题,加-o参数能优化性能。

composer dump-autoload 命令用于重新生成 Composer 的自动加载文件,而不是重新安装依赖。它会根据当前 composer.json 中的配置(如 autoload 设置、PSR-4/PSR-0 映射、classmap 等),重新构建 vendor/autoload.php 和相关的映射文件。
主要作用
这个命令的核心功能是让 PHP 能正确加载项目中的类文件,而无需手动引入每个文件。常见用途包括:
JTBC CMS(5.0) 是一款基于PHP和MySQL的内容管理系统原生全栈开发框架,开源协议为AGPLv3,没有任何附加条款。系统可以通过命令行一键安装,源码方面不基于任何第三方框架,不使用任何脚手架,仅依赖一些常见的第三方类库如图表组件等,您只需要了解最基本的前端知识就能很敏捷的进行二次开发,同时我们对于常见的前端功能做了Web Component方式的封装,即便是您仅了解HTML/CSS也
- 更新了 autoload 配置后(比如新增了 PSR-4 命名空间映射)
- 添加了新的类文件但未被自动加载识别
- 修改了 classmap 所包含的目录结构
- 部署环境中不想运行完整 composer install,只刷新自动加载
何时需要执行?
以下情况建议运行 composer dump-autoload:
- 你在 composer.json 中手动添加或修改了 "autoload" 字段,例如:
"autoload": { "psr-4": { "App\\": "src/" } }修改后必须执行该命令,否则新命名空间不会生效。 - 你新增了大量类文件,而这些文件位于 classmap 指定的目录中(如测试文件、命令类等)
- 在生产环境部署时,为了提升性能,可以使用 --optimize 或 -o 参数生成更高效的自动加载文件:
composer dump-autoload -o
- 遇到 “Class not found” 错误,且确认类文件存在、命名空间正确时,可尝试刷新自动加载
常用参数
- -o / --optimize:生成优化的自动加载器,将所有类的路径写入一张静态映射表,提升性能
:启用 APCU 缓存(适合生产环境高并发场景) - --no-dev:忽略开发依赖的自动加载(通常与 -o 一起用于生产环境)









