composer help 是 Composer 的内置帮助命令,不加参数列出所有可用命令,加命令名显示其详细用法;支持 --format 参数导出结构化帮助;部分命令(如 create-project)依上下文动态隐藏。

composer help 命令本身怎么用
composer help 是查看 Composer 内置帮助的入口,不加参数时列出所有可用命令;加具体命令名则显示该命令的详细用法。它不是“文档网站”,而是 CLI 层面的即时参考,适合快速确认参数格式和常用选项。
- 运行
composer help查看全部命令列表(含简短描述) - 运行
composer help require查看require命令的完整语法、选项说明和示例 - 加
--format=markdown或--format=json可导出结构化帮助(极少用,仅调试或集成时需要)
为什么 help 输出里看不到某些命令(比如 create-project)
Composer 会根据当前目录是否已有 composer.json、是否在全局模式下运行,动态隐藏部分命令。例如:create-project 在已有项目的根目录中默认不显示,因为它的语义是“从零新建项目”。这不是 bug,而是上下文感知设计。
- 确保你在空目录中运行
composer help,才能看到create-project、init等初始化类命令 - 全局安装的插件命令(如
composer normalize)需先执行composer global update才可能出现在 help 列表中 -
composer self-update不会在 help 中列出——它是内置逻辑,非标准命令实现
help 显示的参数括号含义:[] vs vs [name]
Composer 的 help 文档沿用 Symfony Console 的参数标注规范,括号类型直接决定你是否必须提供值:
-
[package]:可选参数,不填就跳过(如composer require [package]) -
:必填位置参数,不能省略(如composer require中的) -
[--dev]:布尔型选项,带--前缀,存在即启用(如composer require --dev phpunit/phpunit) -
[--version=VERSION]:带值的选项,等号后为默认值,实际使用时可写成--version=^9.0或--version ^9.0
help 里没写清楚的隐含行为
有些关键行为不会出现在 help 文本中,但直接影响执行结果,容易踩坑:
-
composer update默认只更新composer.lock中已记录的包,不会拉取composer.json新增的依赖——得加--with-dependencies或先composer install -
composer require在有 lock 文件时,会尝试复用现有版本约束,而不是无条件安装最新匹配版 -
--no-interaction选项在所有命令中都有效,但 help 通常只在交互式命令(如init)里强调它;实际上它能静默跳过所有提示(包括安全警告) -
composer help dump-autoload不提--optimize已被废弃——这个细节只有在 CHANGELOG 或源码注释里才明确
composer help,比反复翻官网更快定位问题。










