Composer包名必须为全小写vendor/package格式,是PHP生态全局唯一标识;含大写、下划线、单段或非法字符将导致install硬拦截及后续Class not found。

Composer 包名写错,composer install 直接报 Invalid package name,不是警告,是硬拦截;后续 Class not found 问题八成也源于此——name 字段不是“起个名字”,它是整个 PHP 生态里包的全局唯一标识符,错一个字符就卡死。
name 字段必须是 vendor/package 格式且全小写
Composer 只读 composer.json 里的 name 字段,不看目录名、Git 仓库名、GitHub 用户名。它必须严格满足两段式:vendor/package,中间仅一个 /,且全部小写。
-
acme/json-helper✅ 合法:vendor 是acme(需与 Packagist 账号完全一致),package 是json-helper(kebab-case) -
acme/JsonHelper❌ 非法:含大写字母,composer validate立即失败 -
my-app❌ 非法:单段,Composer 自动补成root/my-app,但root不是合法 vendor,别人require时无法解析 -
acme/api_client❌ 非法:含下划线,Linux + Git 下 autoload 易失效
允许的字符仅限:小写字母、数字、-、_、.;禁止空格、@、:、=、|、大写字母。
vendor 名必须和 Packagist 账号完全一致
你在 Packagist 注册的用户名(如 GitHub 用户名 john-doe),就是 vendor 的唯一合法值。填错就等于身份证号写错,别人 composer require john-doe/my-package 永远拉不到你。
- 不能用邮箱(
john@example.com)、项目代号(myproject)或系统用户名代替 - 域名反写可用(如
com-example),但需先在 Packagist 完成组织认证 -
php、ext、lib是保留字,虽不报错,但 Packagist 提交时大概率被拒
本地开发别依赖 composer init --name 自动推断——它可能把目录 MyAwesomeLib 推成 root/myawesomelib,而 root 不是你账号。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
package 名影响 PSR-4 命名空间推导,但不可依赖默认
如果你没显式配置 autoload.psr-4,Composer 会按 vendor/package 机械转驼峰:如 acme/http-client → Acme\HttpClient。但这只是建议,实际代码若用 MyName\HttpClient,类就永远找不到。
- 必须显式写死
"autoload": {"psr-4": {"MyName\HttpClient\": "src/"}}(注意末尾\) - 命名空间前缀末尾漏掉反斜杠(写成
"MyName\HttpClient")会导致整个映射失效 - package 含数字(如
my-app-v2)→ 转成MyAppV2,但你文件里写了MyAppv2,Linux 下直接Class not found
改完 name 后,必须同步更新 autoload.psr-4、所有 namespace 声明、文件路径,再运行 composer dump-autoload -o,否则缓存仍按旧规则加载。
本地验证 name 是否合规的最快方式
别等提交到 Packagist 才发现被拒,三步本地就能确认:
- 运行
composer validate—— 过不去说明格式或字符非法 - 删掉
vendor/和composer.lock,再执行composer install—— 看是否真能装进本地 - 检查
vendor/composer/autoload_psr4.php里生成的映射项,是否和你预期的命名空间、路径完全一致
最常被忽略的是:改了 name 却没删 vendor/,Composer 会复用旧缓存,导致 dump-autoload 产出错误映射,问题藏得深、查得慢。










