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

求助:PSR-4标准类自动加载不符合规范问题排查

PSR-4自动加载配置错误分析与解决

你的问题出在命名空间前缀与文件目录的映射不匹配,导致Composer无法正确识别类文件的位置。

错误原因

当前composer.json中PSR-4配置将命名空间前缀Esimowl\Mobimatter\映射到./src/:

{
    "autoload": {
        "psr-4": {
            "Esimowl\\Mobimatter\\": "./src/" 
        }
    }
}

按照PSR-4规范,这个配置意味着:

  • 命名空间Esimowl\Mobimatter\Product对应的文件路径应该是./src/Product.php

但你的实际文件路径是./src/Esimowl/Mobimatter/Product.php,相当于在映射目录下又重复了一遍命名空间的层级结构,导致Composer判定不符合规范。

解决方案(二选一)

方案1:调整composer.json的命名空间映射(推荐)

将命名空间前缀改为Esimowl\,映射到./src/,这样命名空间的层级会直接对应到src下的目录结构:

{
    "name": "esimowl/mobimatter",
    "description": "An awesome plugin created by Esimowl",
    "type": "wordpress-plugin",
    "autoload": {
        "psr-4": {
            "Esimowl\\": "./src/" 
        }
    }
}

修改后执行命令重新生成自动加载文件:

composer dumpautoload -o

方案2:调整文件目录结构

如果不想修改composer配置,可以将Product.php直接移动到src/目录下,保持命名空间Esimowl\Mobimatter不变。但这种方式会破坏命名空间与目录结构的对应关系,不推荐使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 03:04:54