github仓库必须公开、根目录含合法composer.json(含name和autoload)、打v1.0.0等语义化标签;packagist仅索引不托管,依赖webhook或手动update同步。

能发,但 Packagist 不接受直接上传——你得先有公开 Git 仓库,再让 Packagist 去自动抓取 composer.json。漏掉这一步,所有后续操作都白忙。
你的 GitHub 仓库必须满足哪些最低条件?
Packagist 只认三样东西:公开可读的 Git 仓库、根目录下的 composer.json、语义化版本标签(如 v1.0.0)。缺一不可。
-
composer.json至少得有"name"(格式必须是vendor/package-name,比如myname/http-client,不能带下划线或大写字母)和"autoload"(哪怕只是{"psr-4": {"MyName\": "src/"}}) - 仓库默认分支(通常是
main或master)必须包含有效composer.json,且能被 Packagist 从公网直接git clone - 打 tag 时用
git tag v1.0.0,别用1.0.0或release-1.0——Packagist 只识别v*前缀的语义化标签
如何让 Packagist 自动同步新版本?
手动提交一次后,Packagist 就会监听你的仓库。但首次注册必须手动触发,而且得靠 Webhook 或 “Update” 按钮,不是“发布即同步”。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 访问 https://www.php.cn/link/20a1f94e0e45384e8e08872de5a5e545,粘贴你的 GitHub/GitLab 仓库 URL(如
https://github.com/myname/http-client) - 第一次提交后,进 Packagist 页面点右上角「Update」按钮,它才会立刻拉取最新
composer.json和 tag - 之后每次 push 新 tag(如
v1.0.1),只要仓库 Webhook 已启用(GitHub Settings → Webhooks → Add webhook → Payload URL 填 Packagist 提供的地址),就会自动更新;否则得手动点「Update」
为什么 composer require myname/http-client 报错“Could not find package”?
不是代码问题,是 Packagist 还没收录、或名字拼错、或未启用自动更新。90% 的情况卡在这三处。
- 检查 Packagist 上是否真有
myname/http-client页面——没有就说明提交失败,常见原因是composer.json格式错误(用composer validate本地验一遍) - 确认你在终端输的名字和 Packagist 页面 URL 完全一致,包括大小写和连字符(
myname/http-client≠myname/httpclient) - 刚打完 tag 就跑
composer require?等 30 秒再试——Packagist 同步有延迟,手动点过「Update」也得几秒生效 - 如果用了私有包或测试阶段,别忘了加
--stability=dev(比如composer require myname/http-client:dev-main),否则只认 stable tag
最常被忽略的是:Packagist 不校验 PHP 版本兼容性,但 Composer 会。如果你的 composer.json 写了 "php": "^8.2",而用户用 PHP 8.1 装,就会静默失败——得靠 composer show myname/http-client 看实际约束,而不是只信 README 里写的“支持 PHP 8+”。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










