You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将库迁移至Packagist后PHP命名空间与Composer自动加载映射问题

Composer PSR-4 命名空间映射问题解决方案

核心问题

你的类声明的命名空间是Csp,但Composer自动加载配置与实际文件路径、命名空间的映射关系不匹配,导致类无法被找到。

正确的自动加载配置

根据你的文件结构(类文件位于src/Csp/,命名空间为Csp),正确的PSR-4配置如下:

"autoload": {
    "psr-4": {
        "Csp\\": "src/Csp/"
    }
}

注意:PSR-4要求命名空间前缀末尾的\\和目录路径末尾的/都不能省略,确保映射规则准确。

配置生效步骤

  1. 在你的包项目根目录执行命令,更新自动加载缓存:
composer dump-autoload
  1. 在测试项目中更新你的包,确保新配置被加载:
composer update theking2/csp-builder

若更新后仍有问题,可删除测试项目的vendor目录和composer.lock文件,重新执行composer install彻底清除缓存。

正确的类实例化方式

由于类的命名空间是Csp,实例化时可采用以下两种方式:

// 直接使用完整命名空间
$builder = new Csp\Builder(true);

// 先引入命名空间再实例化
use Csp\Builder;
$builder = new Builder(true);

额外排查点

  • 确认类文件名与类名完全一致(包括大小写),比如Builder.php对应class Builder,PSR-4对大小写敏感。
  • 检查测试项目vendor/theking2/csp-builder/composer.json中的autoload配置是否已更新为正确内容。

内容的提问来源于stack exchange,提问作者theking2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 10:02:43