如何遵循ThinkPHP类名规范实现自动加载?
- 内容介绍
- 文章标签
- 相关推荐
本文共计886个文字,预计阅读时间需要4分钟。
ThinkPHP6找不到类,90%的情况是类名、文件名、命名空间三者大小写不一致,不是框架问题,也不是autoload没注册——是PSR-4映射根基本没有匹配上。
类名和文件名必须严格驼峰且首字母大写
PSR-4 要求类名与文件名完全一致(含大小写),且以 .php 结尾,不接受 .class.php 或小写文件名。
-
User类 → 文件必须叫User.php,不能是user.php、user.class.php或UserClass.php -
UserLoginService类 → 文件必须叫UserLoginService.php,中间不能加下划线 - Linux/macOS 系统对大小写敏感,Windows 开发时即使能跑,切到生产环境必报
Class "appserviceUser" not found
命名空间必须与物理路径逐段对应
命名空间里的反斜杠 必须和目录分隔符一一对应,且全部小写;appcontrollerIndex 就意味着文件在 app/controller/Index.php。
本文共计886个文字,预计阅读时间需要4分钟。
ThinkPHP6找不到类,90%的情况是类名、文件名、命名空间三者大小写不一致,不是框架问题,也不是autoload没注册——是PSR-4映射根基本没有匹配上。
类名和文件名必须严格驼峰且首字母大写
PSR-4 要求类名与文件名完全一致(含大小写),且以 .php 结尾,不接受 .class.php 或小写文件名。
-
User类 → 文件必须叫User.php,不能是user.php、user.class.php或UserClass.php -
UserLoginService类 → 文件必须叫UserLoginService.php,中间不能加下划线 - Linux/macOS 系统对大小写敏感,Windows 开发时即使能跑,切到生产环境必报
Class "appserviceUser" not found
命名空间必须与物理路径逐段对应
命名空间里的反斜杠 必须和目录分隔符一一对应,且全部小写;appcontrollerIndex 就意味着文件在 app/controller/Index.php。

