composer 正确加载类的关键是严格匹配 psr-4 自动加载配置:composer.json 中 "autoload" 的命名空间与目录路径须一致,改后运行 composer dump-autoload;packagist 拒绝收录主因是仓库非公开、composer.json 缺 name(格式 vendor/package)、description 或 type,且 name 不得含下划线或大写;本地开发用 path 仓库方式可实时测试,无需反复发布。

Composer 本身不创建包,它只管理包;真正要发布自己的 PHP 包,核心是写好 composer.json、遵循 PSR-4 自动加载规范、托管到 Git 仓库,并注册到 Packagist(或私有源)。
如何让 Composer 正确加载你的类
这是最常卡住的一步:类找不到,Class not found。根本原因不是 Composer 坏了,而是自动加载没配对。
-
composer.json中必须声明"autoload",且路径要和实际文件结构严格匹配 - 推荐用 PSR-4:比如设
"MyVendor\MyPackage\": "src/",那就要求所有类都在src/下,且命名空间以MyVendorMyPackage开头 - 改完
composer.json后,必须运行composer dump-autoload(开发中加-o可选,但非必需) - 别把测试文件(
tests/)或 bin 脚本误放进 autoload —— 它们该走"autoload-dev"
为什么 packagist.org 拒绝收录你的仓库
Packagist 不是上传平台,它只抓取公开 Git 仓库的元数据;拒绝通常是因为基础校验失败。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 仓库必须是公开的(GitHub/GitLab/Bitbucket),私有仓库需配私有源(如 Satis 或 Private Packagist)
-
composer.json必须在仓库根目录,且含至少"name"(格式为vendor/package,如myvendor/my-package)、"description"、"type"(推荐library) - 别用下划线或大写字母在
name里 ——my_package或MyPackage都非法,只能是my-package - 首次提交后,去 packagist.org 手动 submit URL;后续推送 tag(如
v1.0.0)会自动更新
本地开发时怎么边写边测,不用反复 publish
你不需要每次改一行就 push + tag + 等 Packagist 同步。本地有更直接的方式。
- 在使用方项目的
composer.json中加"repositories"指向本地路径:"repositories": [ { "type": "path", "url": "../my-package" } ] - 然后
composer require myvendor/my-package:dev-main(注意分支名要匹配) - 这样修改
../my-package的代码,使用方立刻可见,无需重新 install - 如果要用 Git URL 测试(比如模拟真实场景),确保远程分支存在,且
composer.json中"version"字段不要硬写死 —— 它会被 Git tag 覆盖
真正的难点不在命令怎么敲,而在于 vendor 名、package 名、命名空间、目录结构、Git tag 这五者必须咬合严丝合缝;错一个,就会出现“明明文件在这,Composer 就是不认”的情况。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










