composer如何配置psr-0加载_composer旧标准兼容【详解】-composer

PSR-0 已被废弃,Composer 2.0+ 完全移除支持;项目若需加载 PSR-0 风格类(如 Vendor_Name_ClassName → vendor_name/class_name.php),须降级至 Composer 1.x 并在 composer.json 的 autoload 段中配置 psr-0 键,例如 {“autoload”: {“psr-0”: {“Acme_”: “src/”}}},表示 Acme_Foo_Bar 映射为 src/Acme/Foo/Bar.php(下划线转斜杠,首字母大写保留);psr-0 值必须是字符串路径,多路径需用数组(仅 Composer 1.10.1+ 支持),路径须存在且可读,否则运行时报 Class not found;PSR-0 被弃用因其设计歧义(下划线语义不明确),而 PSR-4 通过明确命名空间与目录映射解决该问题;Composer 2.x 移除全部 psr-0 代码,遇到该字段仅警告并跳过;主流框架自 2015 年起全面转向 PSR-4,旧项目迁移推荐调整目录结构与 composer.json 为 psr-4,并将类名改为命名空间形式(如 namespace Acme\Foo; class Bar),若无法修改类名可用 “files

PSR-0 已被废弃,Composer 2.0+ 完全移除支持;若项目仍需加载 PSR-0 风格的类(如 Vendor_Name_ClassName 映射到 vendor_name/class_name.php),必须降级到 Composer 1.x 并手动配置 autoload —— 但这是临时兼容方案,不建议长期使用。

Composer 1.x 中如何声明 PSR-0 自动加载

在 composer.json 的 autoload 段中显式写入 psr-0 键(注意:Composer 2.0+ 解析时会直接报错 Invalid argument supplied for foreach() 或忽略该字段):

{
    "autoload": {
        "psr-0": {
            "Acme_": "src/"
        }
    }
}

上述配置表示:所有以 Acme_ 开头的类名,按 PSR-0 规则拆解为目录路径,例如 Acme_Foo_Bar → src/Acme/Foo/Bar.php(下划线转斜杠,首字母大写保留)。

  • psr-0 值必须是字符串(路径),不能是数组(Composer 1.x 不支持多路径映射同一前缀)
  • 若需多个根路径,要写多个键:"Acme_": ["src/", "legacy/"] —— 仅 Composer 1.10.1+ 支持数组值
  • 路径必须存在且可读,否则 composer dump-autoload 不报错,但运行时抛出 Class not found

为什么 Composer 2.x 不再支持 PSR-0

PSR-0 存在歧义设计:下划线既可能表示命名空间分隔符,也可能只是类名一部分(如 My_Class_v2),导致自动加载器无法可靠推导文件路径。PSR-4 用明确的命名空间 + 目录映射消除了该问题。

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » composer如何配置psr-0加载_composer旧标准兼容【详解】-composer
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1391+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 3995722+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1391+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 3995722+
  • 本周更新: 0+
  • 最后更新: 2026-03-16