使用Composer PSR-4实现自动加载报错:找不到指定类
解决Composer PSR-4自动加载找不到类的问题
我来帮你搞定这个报错——核心问题出在你的PSR-4自动加载映射配置搞反了,导致Composer找不到你的Connection类。
问题根源拆解
先理清楚PSR-4的核心规则:命名空间前缀对应源码根目录,前缀后的命名空间片段要和目录结构完全匹配。
你的Connection类命名空间是Blog\Classes\Database\Connection,对应的文件路径应该是app/Classes/Database/Connection.php(假设app/是你的源码根目录)。但你当前的composer.json配置把Blog\直接映射到了app/classes/Database,这会让Composer去app/classes/Database/Classes/Database/Connection.php找这个类——显然这个路径根本不存在,所以才会报类找不到的错误。
修复步骤
修正composer.json的PSR-4配置
把配置改成下面这样,让Blog\前缀对应到你的源码根目录app/:{ "autoload": { "psr-4": { "Blog\\": "app/" } } }重新生成自动加载文件
配置修改后,必须执行以下命令让Composer更新自动加载映射:composer dump-autoload确认文件结构正确
最后检查你的项目文件结构是否符合以下规范:blog-oop/ ├── app/ │ └── Classes/ │ └── Database/ │ └── Connection.php ├── vendor/ ├── composer.json └── index.php
做完这三步,再运行你的index.php,应该就能正常加载Connection类了。
内容的提问来源于stack exchange,提问作者Blues Clues
相关产品推荐
相关产品推荐

