Composer插件必须为"type": "composer-plugin"且实现PluginInterface,全局安装后需确保~/.composer/vendor/bin在PATH中,并通过composer -V和-v输出验证激活;项目级测试需配置path仓库并手动dump-autoload。

Composer 插件不能靠 composer require 就生效,绝大多数必须全局安装,否则根本不会被加载。
插件装了但命令/事件没反应?先确认它是不是真插件
执行 composer global show --format=json vendor/plugin-name,检查输出里 "type" 字段是不是 "composer-plugin"。不是就只是个普通包,require 再多次也没用。再看它的 composer.json 里有没有 "extra": {"class": "Full\Qualified\PluginClass"},且这个类是否真的实现了 ComposerPluginPluginInterface(注意命名空间和接口全名,少一个字母都白搭)。
全局安装是默认路径,别漏掉权限和 PATH
运行 composer global require vendor/plugin-name 后,插件文件实际在 ~/.composer/vendor/ 下。确保该目录可写,且 ~/.composer/vendor/bin 已加入系统 PATH(Linux/macOS 检查 ~/.bashrc 或 ~/.zshrc;Windows 检查环境变量)。否则 composer -V 看不到插件注册痕迹,composer install -v 输出里也搜不到插件名。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
项目级引入只适合本地调试,配置稍错就静默失败
如果非得在项目里试插件(比如改了源码要热测),必须:
- 在
composer.json的repositories里加path类型源,指向本地插件目录 -
require它的同时,确保插件包自身composer.json里"type"是"composer-plugin" - 每次改完插件代码,手动跑一次
composer dump-autoload,否则类加载不进来 - 别指望
require-dev能绕过限制——插件注册发生在依赖解析前,dev区块晚于这个时机
怎么验证插件真在跑?别信文档,看输出和副作用
最可靠的方式:在插件的 activate() 方法里加一行 file_put_contents('/tmp/plugin-activated', 'yes');,然后执行 composer -V(这是最轻量、必触发的命令)。接着检查 /tmp/plugin-activated 文件是否存在。另外,加 -v 参数重跑 composer install,搜索控制台输出里有没有你的插件名或监听的事件名(如 pre-autoload-dump);有些插件会修改 vendor/autoload.php 内容或生成额外文件,这些也是活证据。
插件加载时机极早,一旦 PHP 版本不匹配(比如插件用了 PHP 8.1 的 enum,而你 CLI 用的是 8.0)、或全局配置里 disable-plugins: true、或插件构造函数抛异常,都会静默跳过——连 warning 都不报。所以日志打点和 -v 输出是唯二可信的线索。

















