composer list 默认只显示约20个核心命令,插件命令需加--all参数才可见;命令名用短横线分隔,大小写不敏感但空格和下划线会导致报错。

直接运行 composer list 就能列出所有可用命令,但默认只显示核心命令;要看到全部(包括插件提供的),得加 --all 参数。
为什么 composer list 看不到某些命令?
Composer 默认隐藏插件命令和部分“非主干”命令,避免初学者被信息淹没。比如 composer normalize(来自 ergebnis/composer-normalize)或 composer outdated --direct 的子选项,不加参数就不出现在默认列表里。
- 不加参数:仅显示约 20 个高频核心命令(如
install、require、update) - 加
--all:列出所有已加载插件注册的命令,数量可能翻倍 - 加
-v(verbose):在命令后附带简短描述,比纯list更实用
composer list 常用组合与实际用途
日常查命令,别只敲 composer list —— 它太“干净”,反而不好用:
-
composer list --all -v:最推荐,全量 + 描述,一眼看出dump-autoload是“Dumps the autoloader -
composer list | grep require:快速过滤,比如找require相关变体(require-dev不是独立命令,但能帮你确认它属于require的选项) -
composer list dump:输入命令前缀可自动匹配,dump会列出dump-autoload和dump-env(如果装了vlucas/phpdotenv插件)
注意命令名大小写与空格陷阱
Composer 命令本身不区分大小写(COMPOSER UPDATE 也能跑),但参数和选项严格区分;更关键的是:命令名里有连字符,不是下划线 —— 别把 create-project 错记成 create_project,否则报错 Command "create_project" is not defined。
- 所有内置命令都用短横线分隔:
show、outdated、validate、archive - 插件命令命名风格不统一,有的带 vendor 前缀(如
phpstan:analyse),这种必须完整输入,不能只打phpstan - 执行时多一个空格或少一个连字符,错误提示不会告诉你“你少打了 -”,只会冷冰冰说
Command "dump autoload" is not defined(注意空格触发了错误解析)
真正容易卡住的,往往不是记不住命令,而是没意识到插件命令要 --all 才显形,以及连字符输成下划线或空格后根本搜不到对应提示。










