能发布成功不等于别人能装上,主因是composer.json格式错误(name须vendor/name全小写且vendor与packagist账号一致)、autoload映射失效(psr-4路径与namespace严格匹配)、git tag未规范推送(须annotated tag如v1.0.0并git push origin v1.0.0)。

能发布成功,不等于别人能装得上——最常卡在 composer.json 格式错、autoload 映射失效、或 git tag 没推上去这三处。
composer.json 写不对,Packagist 直接拒收
Packagist 不校验代码,只读这个文件。字段缺失、格式非法、命名空间大小写错,都会导致抓取失败或用户 require 后 Class not found。
-
name必须是vendor/name格式,全小写、仅含字母数字和短横线(如myorg/http-client),且vendor必须与你在 Packagist 的注册用户名完全一致 -
autoload推荐用 PSR-4,映射必须严格匹配:若写"MyOrg\HttpClient\": "src/",那src/Request.php就得声明namespace MyOrg\HttpClient;,少一个反斜杠、多一个空格、大小写不一致,都加载失败 - 删掉
version字段——它会被 Git tag 覆盖,留着反而可能干扰版本解析 - 运行
composer validate本地检查,比等 Packagist 报错再改快得多
Git tag 不规范,Packagist 当没看见
Packagist 不从分支读版本,只认带语义化格式的 annotated tag。没打 tag,包页面就显示 “No releases found”,用户 composer require 默认装的是 dev-main,不是稳定版。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 必须用
git tag -a v1.0.0 -m "Release 1.0.0"(带-a参数),轻量标签(git tag v1.0.0)不会被识别 - tag 名推荐带
v前缀:v1.0.0、v2.1.3-beta.1✅;1.0、release-1.0.0、1.0.0-final❌ - 打完必须显式推送:
git push origin v1.0.0或git push origin --tags;只git pushcommit 不会触发新版本索引
提交到 Packagist 后没自动更新,每次发版都得手动点
旧教程说“点 Submit 就完事”,现在官方强推 webhook 实时同步。不配,后续每次发版都得人工进 Packagist 页面点 Update,极易漏更、延迟长达 15 分钟。
- GitHub 侧操作:仓库 → Settings → Webhooks → Add webhook → Payload URL 填
https://packagist.org/api/github→ Events 选 Just the push event(或勾选 Releases) - 关联 GitHub 账号后,在 Packagist 包页点 “Enable auto-updating” 才算生效
- 验证是否生效:推送一个新 tag 后,看 Packagist 页面右上角 “Last updated” 时间是否变化,或查 GitHub webhook 的 Recent Deliveries 状态码是否为 200
真正容易被忽略的,是 autoload 映射与实际文件路径/命名空间的一致性——它不报错,但一调用就 Class not found;还有就是以为推了代码就等于发布了,其实没 git push origin v1.0.0,全世界都装不到你的稳定版。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










