composer list 默认仅显示20个核心命令,插件命令需加 --all 才可见;--all 强制加载所有已安装插件命令但仅限当前项目上下文;查具体命令用 composer list command 或 composer help command,推荐后者获取权威参数;脚本中应使用 --format=json 解析而非字符串匹配,并用 composer help command &>/dev/null 检查命令是否存在。

composer list 默认只显示20个核心命令,插件命令得加 --all
直接运行 composer list 看到的只是高频内置命令(如 install、require、update),插件注册的命令(比如 phpstan:analyse、normalize)根本不会出现。这不是漏了,是 Composer 故意隐藏,避免初学者被信息淹没。
要真正看到“全部”,必须加 --all(或简写 -a):
composer list --all
这个参数会强制加载所有已安装插件注册的命令,包括隐藏命令(如 self-update、_complete)。但注意:它只反映当前上下文——项目里没装 ergebnis/composer-normalize,normalize 就不会出来;全局插件(如 composer global require laravel/installer)也不会出现在项目内 list --all 输出里。
用 composer list command 查具体命令的完整签名和参数
composer list require 和 composer help require 都能看参数,但行为不同:
-
composer list require输出紧凑,适合grep或管道处理,比如:composer list require | grep --dev -
composer help require更权威,尤其对插件命令——有些插件不响应--help直接调用,但一定支持help子命令 - 加
-v(如composer list -v dump-autoload)能看到隐式参数,比如--optimize实际触发条件依赖config中是否启用了classmap-authoritative
别信帮助页写的“默认值”——它可能被 composer.json 里的 "config" 覆盖,比如 "platform": {"php": "8.1"} 会让 --ignore-platform-reqs 的行为变复杂。
脚本里解析 composer list 输出,别靠字符串匹配
如果写 CI 脚本判断某命令是否存在,有三个坑:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 用
--format=json,别 parse 文本输出——命令名可能含空格或特殊字符,且不同 Composer 版本字段名微调(比如 v2.2+ 新增了hidden字段) - 不是所有命令都支持
--help;有些插件命令只响应composer help xxx,直接xxx --help会报错 -
composer list不校验执行权限,它只反映注册表。比如composer global require在 v2 中已失效,但旧缓存可能仍让它出现在列表里
最稳的方式是执行 composer help <code>command &>/dev/null 并检查退出码:成功为 0,失败为 1。
命名空间过滤和格式化输出,提升检索效率
不需要扫完整列表,可以用命名空间缩小范围:
composer list config<br>composer list require
这比全量 list --all | grep config 更准,因为 config 是官方命名空间,包含 config、config:dump 等所有子命令。
其他实用格式:
-
--short:只输出命令名,无描述、无分组,适合快速筛选或 shell 循环 -
--format=markdown:生成可读性更强的文档,直接粘贴进 README -
--format=json:结构化数据,适合自动化工具消费
注意:自定义脚本(写在 composer.json 的 "scripts" 里)永远不会出现在 list 输出中,得用 composer run --list 单独查。










