composer list 仅列出当前环境已注册的命令索引,不提供参数说明或行为解释;默认只显示约20个核心命令,插件命令需加--all才可见,详细用法须配合--help查看。

composer list 不是“所有命令的完整手册”,它只是当前环境里已注册命令的索引表——不带参数说明、不解释行为差异、也不告诉你哪些命令需要在含 composer.json 的目录下运行。
composer list 默认只显示核心命令,插件命令得加 --all
直接执行 composer list 通常只列出约 20 个高频内置命令(如 install、require、update),第三方插件提供的命令(比如 phpstan:analyse 或 composer-normalize)默认不出现。
- 要看到全部,必须加
--all:运行composer list --all - 加
-v可附带简短描述,比纯列表更实用:composer list --all -v - 刚装完插件却没出现在列表里?大概率是没运行
composer global update(全局插件)或composer install(项目级插件)来激活注册 -
composer list不解析composer.json中的scripts字段,那些自定义命令(如post-install-cmd)不会出现,得用composer run --list(Composer ≥2.5)或直接看 JSON 文件
查具体命令怎么用,不能只靠 composer list
composer list 输出里哪怕看到 dump-autoload,你也无法知道它是否支持 --optimize、默认是否递归扫描、或者该命令是否已被弃用。这些信息只有 --help 能给准。
- 最稳做法:对任意命令加
-h或--help,例如composer dump-autoload -h -
composer require -h会明确标出--dev和--no-update是互斥的,避免你加了两个还奇怪为啥报错 - 有些选项只在特定版本存在,比如
--with-all-dependencies在 Composer 2.2+ 才稳定,--help不标版本,得自己核对 CHANGELOG - 别信 Tab 补全或老教程——
composer info是composer show的别名,但composer info -s会失败,因为-s不属于show命令(正确是--summary,且仅 Composer ≥2.5 支持)
命令名写法错误是高频卡点,空格和下划线都会让命令失效
Composer 命令名严格使用短横线分隔,大小写不敏感,但空格、下划线、多连字符都会触发解析失败。
- 正确:
composer create-project、composer dump-autoload - 错误:
composer create_project(下划线)、composer dump autoload(空格)、composer dump--autoload(双连字符) - 报错提示很冷淡:
Command "dump autoload" is not defined,不会告诉你“你多打了空格” - 插件命令命名不统一,有的带 vendor 前缀(如
phpstan:analyse),这种必须完整输入,不能只打phpstan就想自动补全
真正容易卡住的,往往不是记不住命令,而是没意识到插件命令要 --all 才显形、连字符输成空格后根本搜不到提示、以及把 list 当成手册去硬背——它只是入口,不是答案本身。











