composer dump-autoload 用于重新生成自动加载文件,解决类找不到问题。它根据 composer.json 中的 autoload 配置重建映射,支持 --optimize 和 --no-dev 等参数优化性能,适用于添加新类、修改命名空间或部署生产环境时刷新加载规则。

当使用 Composer 管理 PHP 项目的依赖时,composer dump-autoload 命令是一个非常实用的工具。它不安装或更新包,而是重新生成项目的自动加载文件。
什么是自动加载(Autoload)?
PHP 本身不会自动包含类文件,Composer 通过 PSR-4、PSR-0 或 classmap 等机制生成一个映射表,让 PHP 在需要某个类时能自动找到并加载对应的文件。这个映射关系保存在 vendor/autoload.php 及其相关文件中。
dump-autoload 命令的作用
执行 composer dump-autoload 会强制 Composer 重新扫描 composer.json 中定义的 autoload 配置,并生成新的自动加载映射文件。常见用途包括:
- 添加了新的类映射或命名空间后,让项目立即识别
- 修改了 psr-4 或 classmap 路径配置,需刷新加载规则
- 部署生产环境时生成更高效的加载文件(配合 --optimize)
- 调试自动加载问题时重建映射
常用参数说明
该命令支持几个实用选项:
- --optimize (-o):生成优化的自动加载器,将所有类名预先映射为文件路径,提升性能
- --apcu:启用 APCU 缓存,加速类加载(适合生产环境)
- --dev:包含开发时的 autoloading 信息(如测试类)
- --no-dev:仅生成生产环境所需的自动加载文件
例如,在生产环境中推荐使用:
composer dump-autoload --optimize --no-dev
基本上就这些。这个命令不复杂,但在开发流程中很关键,尤其当你手动调整了目录结构或命名空间映射时,运行一下就能避免“Class not found”这类问题。










