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

Git中将小写文件夹abc改为大写Abc遇问题及PSR-4报错求助

问题描述

执行composer update时出现PSR-4自动加载报错:

Class Database\Seeders\Abc\DatabaseSeeder located in D:/Codes/PHP/Chinabing/httpdocs/database/seeders\abc\DatabaseSeeder.php does not comply with psr-4 autoloading standard. Skipping.
Class Database\Seeders\Abc\SomeSeeder located in D:/Codes/PHP/Chinabing/httpdocs/database/seeders\abc\SomeSeeder .php does not comply with psr-4 autoloading standard. Skipping.

推测原因是文件夹名称为小写abc,需将路径D:\web\myproject\database\seeders\abc改为D:\web\myproject\database\seeders\Abc。

已执行以下Git配置:

git config --global core.ignorecase false
git config --local core.ignorecase false
git config core.ignorecase false

但执行git mv abc Abc时出现错误提示:

Rename from 'database/seeders/abc' to 'database/seeders/Abc/abc' failed. Should I try again? (y/n)

操作后生成异常路径Abc/abc,需解决文件夹大小写重命名问题。

解决方案

Windows文件系统默认不区分大小写,直接用git mv修改文件夹大小写容易出问题,试试以下两种可行方案:

方案一:临时迁移文件分步处理

  1. 把abc文件夹内的所有内容移到项目外的临时目录(比如D:\temp\abc_backup),然后删除仓库内的原文件夹:
    git rm -r database/seeders/abc
    git commit -m "移除小写abc种子文件夹"
    
  2. 在database/seeders下新建Abc文件夹,将临时目录的内容移回该文件夹,再提交到Git:
    git add database/seeders/Abc
    git commit -m "添加正确大小写的Abc种子文件夹"
    
  3. 刷新Composer自动加载规则:
    composer dump-autoload
    

方案二:两次重命名绕开系统限制

通过临时名称过渡,让Git识别到文件夹的变更:

# 第一步:重命名为临时名称
git mv database/seeders/abc database/seeders/temp_abc
git commit -m "临时重命名abc为temp_abc"

# 第二步:重命名为目标大小写名称
git mv database/seeders/temp_abc database/seeders/Abc
git commit -m "重命名temp_abc为Abc"

完成后执行composer update,即可验证PSR-4报错是否消失。

内容的提问来源于stack exchange,提问作者ronrun

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:30:39