插件必须全局安装,因composer插件需type为"composer-plugin"且被主进程启动时扫描到,仅两种方式生效:composer global require(推荐)或通过path repository显式引入并确保autoload映射正确。

插件必须全局安装,项目里 require 不生效
Composer 插件不是普通依赖,composer require vendor/plugin 只改 composer.json 和 composer.lock,根本不会加载它。真正起效的前提是:插件包的 type 必须为 "composer-plugin",且被 Composer 主进程在启动时扫描到——这只有两种方式:composer global require(推荐),或通过 path repository 在项目中显式引入并确保 autoload 映射正确。
验证是否真插件?运行 composer global show vendor/plugin,检查输出里有没有 types : composer-plugin。没有?那它只是个带 bin 命令的普通包,比如 phpunit/phpunit,不是插件。
- 全局安装路径默认是
~/.composer,确保该目录可写、且 Composer 能 autoload 里面的类 - 装完别急着跑
composer install,先执行composer -V或加日志打点(如file_put_contents('/tmp/plugin-activated', 'yes')在activate()里)确认激活成功 - 修改插件代码后,删掉
vendor/composer/autoload_*.php再composer dump-autoload -o,否则旧路径还在用
sandersander/composer-link:本地调试包的软链方案
不用反复 composer install、不改 composer.json 的 path 仓库,一条命令就能把本地包软链接进 vendor:composer link ../my-package。它让自动加载器直接读源码,改完立刻生效。
但有两个静默失效点必须手动干预:
- 被链接包改了
autoload规则(比如从"psr-4"改成"files"),composer link不会重跑dump-autoload,必须自己执行 -
composer update默认不感知链接状态,可能直接删软链、换回正常安装。开发期建议用composer update --with-dependencies my-package显式控制范围
kylekatarnls/update-helper:看清“为什么没升级”
它不帮你升级,只告诉你哪些包本可升但被版本约束卡住。比如输出 monolog/monolog: 2.10.0 → 3.5.0 (constrained by ^2.0),一眼定位约束瓶颈。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
这个提示比翻 changelog 靠谱,但有局限:
- 若项目设了
"minimum-stability": "dev",它可能把dev-main当作“可升级目标”,实际不该升——得人工判断 - 它只读取 + 输出,不改任何文件,所以能安全放进 CI 做每日依赖健康检查
- 默认启用,无需配置,但要注意 Composer 2.x 下它仍完全兼容,别被过时教程误导
vaimo/composer-plugin:自动格式化 composer.json
保存 composer.json 时自动缩进、按键名排序、补逗号——避免因空格、换行、键序错乱导致 CI 报 JSON 解析失败。
它解决的是人手失误问题,不是性能问题:
- 不干预依赖解析或下载,纯粹文本层处理
- 对团队协作特别有用,尤其当多人共用一个
composer.json时 - 和
sandersander/composer-link、kylekatarnls/update-helper无冲突,可以共存
真正影响效率的从来不是下载快几秒,而是“为什么改了代码不生效”“为什么 CI 突然挂了”“为什么明明写了新版本却没装上”。盯住这几个点,比找所谓“加速插件”实在得多。现在 Composer 2.9.6 已原生支持并行下载和更优解析器,hirak/prestissimo 这类老插件不仅无效,还会报 Plugin is not compatible with Composer 2 错误,必须卸载。










