如何配置Composer以遵循PSR-4规范,实现自动加载类文件?
- 内容介绍
- 文章标签
- 相关推荐
本文共计985个文字,预计阅读时间需要4分钟。
改完`composer.json`中的`autoload`配置,不运行`composer dump-autoload`,则永久加载不到类——PSR-4不是监听文件、自动生效的机制,它只读`vendor/composer/autoload_psr4.php`这个静态快照。
composer.json 中 psr-4 键值对怎么写才不报错
PSR-4 映射是「命名空间前缀 → 目录路径」的一一对应,写错一个字符就会导致 Class not found:
-
"App"必须以双反斜杠结尾(JSON 中表示一个反斜杠),写成"App"或"App\"(三个反斜杠)都会被解析失败或降级为 PSR-0 - 路径值是相对于
composer.json所在位置的相对路径,不能以/开头(如"/src/"是非法绝对路径) - 路径末尾推荐加
/(如"src/"),避免拼成srcMyClass.php;但若写成"src",某些 Composer 版本会警告 - 空字符串
""作为命名空间前缀虽语法允许,但会覆盖Exception、PDO等全局类,禁止使用
目录结构和文件名必须与命名空间严格对齐
Composer 不扫描目录,也不猜测文件名。
本文共计985个文字,预计阅读时间需要4分钟。
改完`composer.json`中的`autoload`配置,不运行`composer dump-autoload`,则永久加载不到类——PSR-4不是监听文件、自动生效的机制,它只读`vendor/composer/autoload_psr4.php`这个静态快照。
composer.json 中 psr-4 键值对怎么写才不报错
PSR-4 映射是「命名空间前缀 → 目录路径」的一一对应,写错一个字符就会导致 Class not found:
-
"App"必须以双反斜杠结尾(JSON 中表示一个反斜杠),写成"App"或"App\"(三个反斜杠)都会被解析失败或降级为 PSR-0 - 路径值是相对于
composer.json所在位置的相对路径,不能以/开头(如"/src/"是非法绝对路径) - 路径末尾推荐加
/(如"src/"),避免拼成srcMyClass.php;但若写成"src",某些 Composer 版本会警告 - 空字符串
""作为命名空间前缀虽语法允许,但会覆盖Exception、PDO等全局类,禁止使用
目录结构和文件名必须与命名空间严格对齐
Composer 不扫描目录,也不猜测文件名。

