🧩 DumpAutoload
生成或重新生成 Composer 的自动加载文件,可选择是否优化类映射。
何时使用
当你手动修改了包代码、新增类文件,或希望在生产部署前生成优化后的自动加载器时使用。相当于执行 composer dump-autoload [--optimize]。
签名
go
func (c *Composer) DumpAutoload(optimize bool) error参数
| 参数 | 类型 | 说明 |
|---|---|---|
optimize | bool | 为 true 时生成优化的类映射(conversion PSR-4/PSR-0 到 classmap),加快生产环境类加载 |
返回值
error:生成自动加载文件过程中发生错误时返回相应错误信息,成功时为 nil。
示例
go
package main
import (
"fmt"
"log"
"github.com/scagogogo/composer-skills/pkg/composer"
)
func main() {
comp, err := composer.New(composer.DefaultOptions())
if err != nil {
log.Fatalf("初始化失败: %v", err)
}
// 开发环境:生成标准自动加载文件(快速、增量)
if err := comp.DumpAutoload(false); err != nil {
log.Fatalf("生成自动加载文件失败: %v", err)
}
// 生产环境:生成优化的自动加载文件
if err := comp.DumpAutoload(true); err != nil {
log.Fatalf("生成优化自动加载文件失败: %v", err)
}
fmt.Println("自动加载文件已生成")
}进阶
- 需要同时指定
--classmap-authoritative、--apcu、--no-dev等多个选项时使用DumpAutoloadWithOptions。 - 安装/更新依赖后 Composer 通常会自动执行一次 dump-autoload,无需手动调用;只有在手动改代码后才需要显式触发。