新闻中心

composer 提示 "Class ... located in ... does not comply with psr-4..." 怎么办?

2025-12-05
浏览次数:
返回列表
Class位于...不遵守psr-4规范,因命名空间与文件路径不匹配。例如composer.json配置"App\": "app/"时,类AppModelsPost必须位于app/Models/Post.php。若目录写成Model而非Models则报错。PSR-4大小写敏感,文件名如UserController.php不可小写。修改后需运行composer dump-autoload更新自动加载映射。同时检查composer.json中psr-4配置是否正确,如反斜杠数量和路径拼写。确保命名空间、文件路径、文件名三者一致即可解决。

composer 提示

这个提示是因为 Composer 的 PSR-4 自动加载规范要求类文件的命名和目录结构必须严格匹配命名空间。出现 "Class ... located in ... does not comply with psr-4..." 错误,说明某个类的实际路径与它的命名空间不一致。

检查命名空间是否正确

确保类文件中的命名空间和它在项目中的实际目录结构完全对应。例如:

假设你的 composer.json 中配置了:
"autoload": {
    "psr-4": {
        "App\": "app/"
    }
}

那么:

  • AppUser 必须位于 app/User.php
  • AppModelsPost 必须位于 app/Models/Post.php

如果 Post 类写的是 namespace AppModels;,但文件放在了 app/Model/Post.php(注意是 Model 而不是 Models),就会报错。

确认文件后缀和大小写

PSR-4 对大小写敏感,尤其是在 Linux 系统或 Docker 环境中:

  • 类名 UserController 对应文件名必须是 UserController.php,不能是 usercontroller.php
  • 目录名也要匹配命名空间,比如 Controllers 不能写成 controllers

重新生成自动加载映射

修改完命名空间或文件位置后,运行以下命令刷新自动加载文件:

拾贝 拾贝

一键同步微信读书所有笔记和划线,并在新标签页回顾

拾贝 186 查看详情 拾贝
composer dump-autoload

或者加上优化参数:

composer dump-autoload -o

这会重新解析 psr-4 配置并生成新的类映射。

验证 composer.json 配置

检查 composer.json 中的 autoload.psr-4 是否正确。常见错误包括:

  • 缺少反斜杠结尾:应写为 "App\": "app/",而不是 "App": "app/"
  • 路径拼写错误,如 appp/src 写成 source

基本上就这些。只要命名空间、文件路径、文件名三者一致,并且配置正确,问题就能解决。不复杂但容易忽略细节。

以上就是composer 提示 "Class ... located in ... does not comply with psr-4..." 怎么办?的详细内容,更多请关注php中文网其它相关文章!


# 尼克  # 老河口外贸网站优化  # 武汉建设大型网站  # 聊城网站建设方案咨询  # 货运网站推广方案设计图  # seo发布会  # 襄阳茶叶网站推广价格表  # 网站seo约有客知 名网站seo  # 去哪找网站建设开发  # 装修推广营销话术  # 万词优化seo公司  # 的是  # 如何处理  # 如何使用  # php  # 报错  # 工作流  # 是否正确  # 自动加载  # 拾贝  # 如何解决  # app  # composer  # docker  # json  # js  # linux 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 支付宝如何管理隐私设置_支付宝隐私保护的配置技巧  在Socket.IO连接中实现Access Token自动更新与动态重连  学习通在线学习平台 学习通网页版直接进入课程中心  深入理解Google Cloud Datastore查询:祖先路径与数据一致性  J*aScript中高效清空DOM列表元素:解决for循环中断与任务管理问题  铁路12306官网网页端快速入口 铁路12306官方首页登录教程  CSS布局中意外空白:解决padding-top导致的顶部间距问题  Win10如何清理注册表垃圾 Win10注册表维护与优化指南【慎用】  Excel函数批量查找替换超快方法_Excel用REPLACE和FIND函数秒级替换  《刺客信条:影》PS5 Pro和Switch 2画面对比  Python中高效访问嵌套字典与列表中的键值对  邮政快递包裹最新位置 邮政快递实时追踪入口  Mac终端命令大全_Mac常用Terminal指令速查  QQ邮箱网页版入口登录 QQ邮箱在线邮箱官方通道  QQ邮箱网页版邮箱入口 QQ邮箱官方登录平台  UC浏览器网页版登录入口官网 电脑版网址入口  C#中解析不规范的HTML为XML 常见的坑与解决办法  HTML元素状态管理:根据DIV内容动态启用/禁用按钮  css滚动区域卡顿如何改善_css滚动问题用will-change优化渲染  Descript怎样用AI剪辑自动去噪_Descript用AI剪辑自动去噪【自动降噪】  手机屏幕碎了但能正常使用怎么办 手机外屏碎裂的修复建议  精准捕获:如何在页面中监听除特定元素外的所有点击事件  如何使用Node.js csv 包按条件移除含空字段的CSV记录  妖精动漫免费平台 妖精动漫官网资源观看网址  Golang如何使用new_Go new分配内存机制讲解  荣耀Play7TPro怎样在信息App置顶客服对话_iPhone荣耀Play7TPro信息App置顶客服对话【优先查看】  J*aScript设计模式实践_j*ascript代码优化  ArrayList与LinkedList核心操作的Big-O复杂度分析  解决Django多数据库/多Schema环境下外键迁移问题  绝地鸭卫平a核爆刀流玩法攻略  知乎APP怎么管理已购盐选内容_知乎APP盐选内容购买记录与查看方法  《噬血代码2》新预告片发布 展示游戏剧情  谷歌google账号怎么注册账号 谷歌账号注册官方流程  处理动态列数据:J*a ArrayList的正确初始化与字符累加教程  如何使用J*aScript精确选择并批量修改特定父元素下子链接的样式  将JSON对象数组转置为键值对列表的实用指南  服务端验证_j*ascript输入检查  Go语言中Map值调用指针接收器方法的限制与应对  C++ string find函数返回值npos详解_C++字符串查找失败的判断条件  J*aScriptWebpack优化_J*aScript构建工具实战  搜狗浏览器如何使用密码生成器创建强密码 搜狗浏览器内置密码安全工具  Golang如何实现状态模式管理对象状态_Golang State模式实现技巧  微博网页版官方账号登录 微博网页版内容浏览使用指南  c++如何实现一个简单的软件渲染器_c++从零开始的3D图形学  自定义Bag-of-Words实现:处理带负号的词汇权重  TikTok搜索不到用户发布内容怎么办 TikTok用户内容搜索优化方法  如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略  多闪网页版在线观看免费入口_多闪官网访问入口  Yandex官方入口网址 Yandex俄罗斯搜索引擎最新在线地址  现代化 SciPy 一维插值:interp1d 的替代方案与最佳实践 

搜索