composer 的 name 字段必须为 vendor/name 两段式小写格式,决定依赖解析与 packagist 同步成败;vendor 应与代码仓库账号一致,name 不影响自动加载,命名空间需在 autoload 中显式配置。

Composer 的 name 字段不是随便起个名字就行,它直接决定包能否被正确 require、是否与 Packagist 冲突、甚至影响自动加载逻辑。
name 字段必须是 vendor/name 两段式格式
这是硬性要求,不是建议。Composer 会按这个结构解析依赖关系和命名空间映射。
-
vendor是组织或个人标识,通常用小写 GitHub 用户名/组织名(如monolog、symfony、my-username) -
name是包名,小写字母、数字、短横线(-)组成,不能以短横线开头或结尾,也不能连续出现两个短横线 - 错误示例:
MyPackage(大写)、my_package(下划线)、my--package(双短横)、my-package-(结尾短横) - 正确示例:
acme/mail-client、phpunit/phpunit、my-username/json-validator
vendor 名和 Packagist/GitHub 账号不强制一致,但强烈建议一致
虽然 Composer 不校验 vendor 是否真实存在,但 Packagist 在自动同步时会检查仓库来源。如果填了 acme/mail-client,却把代码放在 github.com/my-username/mail-client,Packagist 同步会失败或被拒绝。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 发布到 Packagist 前,先确认你的 GitHub/GitLab 用户名或组织名与
name中的vendor段完全一致(字母大小写也需匹配) - 私有包可绕过 Packagist,但团队协作时仍建议统一,否则
composer require容易混淆 - 别用
localhost、test、demo当vendor——这些已被大量占用,提交 Packagist 会被拒
name 和 autoload 的 namespace 没有自动映射关系
很多人误以为 "name": "my-username/json-utils" 会自动让 MyUsernameJsonUtils* 可加载,其实不会。Composer 不解析 name 来推导命名空间。
- 自动加载规则由
autoload配置决定,比如"psr-4": {"MyUsername\JsonUtils\": "src/"} -
name仅用于标识和依赖解析;命名空间是你自己定义的,只要在autoload里声明清楚即可 - 常见坑:改了
name却忘了同步更新autoload的 namespace,导致类找不到
最常被忽略的一点:如果你准备提交到 Packagist,name 一旦发布就不能修改——哪怕只是改个大小写,都会被视为全新包。重命名只能新建包,旧包得废弃并加 replace 或 provide 声明。










