要让Composer自动加载器遵循PSR-0规范,需在composer.json中配置"psr-0"字段,如"MyNamespace\": "src/",并确保目录结构与命名空间一致,例如类MyNamespace\Foo\Bar对应src/MyNamespace/Foo/Bar.php;随后运行composer dump-autoload生成自动加载文件,并在入口文件引入vendor/autoload.php即可实现自动加载。

要让 Composer 自动加载器遵循 PHP FIG 制定的 PSR-0 规范,关键在于正确配置 composer.json 文件中的 autoload 部分,并确保项目目录结构与命名空间匹配。虽然 Composer 默认使用 PSR-4,但它也支持 PSR-0,只需明确配置即可。
1. 配置 composer.json 使用 PSR-0
注意:PSR-0 已被废弃,建议优先使用 PSR-4。但若需兼容旧项目,可按以下方式配置。在 composer.json 中添加 autoload 字段,并使用 "psr-0" 键:
{
"autoload": {
"psr-0": {
"MyNamespace\\": "src/"
}
}
}说明:
- MyNamespace\ 是命名空间前缀,必须以双反斜杠结尾(表示命名空间层级)。
- src/ 是该命名空间对应的根目录,Composer 会从此目录开始查找类文件。
例如,类 MyNamespace\Foo\Bar 应位于 src/MyNamespace/Foo/Bar.php。
立即学习“PHP免费学习笔记(深入)”;
2. 目录结构需符合 PSR-0 要求
PSR-0 要求文件路径与命名空间和类名严格对应。例如:src/
└── MyNamespace/
└── Foo/
└── Bar.phpBar.php 内容应为:
Composer 会根据命名空间自动映射到正确的文件路径。
3. 生成自动加载文件
配置完成后,运行以下命令生成自动加载器:composer dump-autoload这会更新 vendor/autoload.php 中的映射规则,使 PSR-0 规则生效。
若在生产环境优化性能,可使用:
composer dump-autoload --optimize它会生成更高效的 classmap。
4. 在项目中引入自动加载
在入口文件(如 index.php)中引入 Composer 的自动加载器:基本上就这些。只要配置正确,Composer 就能按照 PSR-0 规范自动加载类。虽然不推荐新项目使用 PSR-0,但在维护旧系统时,这种配置方式仍具实用价值。











