Packagist 不自动索引 GitHub 仓库,必须手动提交 URL、正确打带 v 前缀的 tag(如 v1.0.0)、配置有效 webhook 三者齐备,缺一不可;否则用户 composer require 会报 “Could not find package”。

你的包在本地能装、能跑,但别人 composer require 报 Could not find package,大概率不是代码问题,而是 Packagist 没真正“看见”它——它不爬 GitHub,不自动索引,必须手动提交 + 正确打标 + webhook 活着,三者缺一不可。
packagist.org 提交仓库 URL 后为什么还是 “Package not found”
Packagist 不会主动扫描或发现你的仓库,提交 URL 是唯一入口,但失败非常常见:
- 仓库地址填错(比如漏了
https://、拼错用户名或仓库名) - GitHub 仓库设为私有——Packagist 无法访问任何私有库
-
composer.json不在仓库根目录,或根本没git push上去 -
name字段含大写字母、下划线、空格,例如"MyOrg/utils"或"myorg_utils"→ 直接拒收 - 缺失必需字段:
name、type(必须是library等合法值)、autoload
提交前务必本地运行 composer validate,它会明确告诉你哪一行、哪个字段不合规。
git tag v1.0.0 之后用户还是装不到稳定版
Packagist 只靠 Git tag 识别版本,不读 composer.json 里的 version 字段,也不认 dev-main 这类分支别名。常见断点:
- tag 名没带
v前缀:用git tag 1.0.0→ Packagist 忽略;必须用git tag v1.0.0 - tag 推送不完整:只执行
git tag v1.0.0,忘了git push origin v1.0.0 - tag 指向的 commit 不含合法
composer.json(比如你改了name,但没git add && git commit就打标) - webhook 没配或失效:GitHub Settings → Webhooks 里没添加
https://packagist.org/api/github,或状态显示404/Connection refused
验证是否生效:推送 tag 后几秒内打开 Packagist 包页,看右上角 Last updated 时间是否刷新;或进 GitHub webhook 的 Recent Deliveries 查 200 响应。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
autoload 配错导致 Class not found 却无安装报错
composer install 成功 ≠ 类能加载。PSR-4 映射错一个字符,运行时就直接 Fatal error:
- 命名空间末尾反斜杠
\不可省略:"MyVendor\MyPackage\": "src/"是对的,"MyVendor\MyPackage": "src/"在 Windows 下可能路径解析异常 - 路径映射不精确:若类是
MyVendor\MyPackage\Http\Client,那src/下必须有Http/Client.php,不能是src/client.php - 没运行
composer dump-autoload -o(尤其上线前),优化后的自动加载文件没生成 - 测试时用了
--no-dev,但 autoload 里引用了tests/下的类(开发专用类不该进 autoload)
快速验证:在包根目录运行 composer dump-autoload -v,看输出是否列出你期望的类路径;再用 composer show -p 查当前加载的 PSR-4 规则。
为什么每次发新版都要手动点 “Update”
这是 webhook 缺失或被 GitHub 自动禁用的典型信号。Packagist 默认每 15 分钟轮询一次,但不可靠,且不触发 tag 更新。正确做法是:
- 进 GitHub 仓库 → Settings → Webhooks → Add webhook
- Payload URL 填
https://packagist.org/api/github - Events 选
Just the push event(覆盖 tag 推送)或单独勾选Releases - 保存后,用
git tag v1.0.1 && git push origin v1.0.1测试,确认 Packagist 页面更新
最常被忽略的一点:GitHub 有时会因长时间无活动而静默禁用 webhook,建议每月检查一次 Recent Deliveries 状态。一旦失效,新 tag 就永远卡在“已推送,未同步”。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










