composer show 是查包作者和详情的最直接命令,指定包名可查看 author、description、homepage 等元信息;不带参数会列出全部已安装包,易混淆;--local 用于离线查已安装版本,-s 显示源码地址;author 字段来自包的 composer.json,格式灵活且可能为空;composer info 是其完全等价别名;查未安装包需先 search 再 show 或用 Packagist 网页/API。

composer show 能直接查作者和详情
想看某个包是谁写的、版本范围、依赖关系,composer show 是最直接的命令。它不只返回作者,还会列出 description、homepage、type、require 等元信息,比翻 composer.json 或 GitHub 页面快得多。
常见错误是只输 composer show 不带参数,结果列出全部已安装包——信息太多反而找不到目标。正确做法是指定包名:
- 查单个包:
composer show monolog/monolog - 查本地已安装的包(不联网):
composer show --local monolog/monolog,适合离线环境或确认实际安装版本 - 加
-s参数可显示源码仓库地址(source字段),方便快速跳转到作者主页或 issue 区
作者信息藏在 composer.json 的 author 字段里
Composer 本身不单独维护“作者数据库”,所有作者信息都来自包的 composer.json 文件中的 author 字段。这个字段格式灵活,可能是字符串、数组,也可能为空——所以不能默认每个包都有清晰署名。
实操中要注意几点:
- 有些包用公司名当作者(如
"author": "Symfony Community"),不是个人; - 多人协作时
author可能是数组,含name和email,但 email 常被省略或用占位符(如noreply@github.com); - 如果
composer show输出里没看到author行,说明该包的composer.json根本没填这一项——这不是命令问题,是上游没写。
composer info 是 show 的别名,但行为完全一致
composer info 和 composer show 是同一个命令的两个名字,源码里就是 alias 关系。别指望 info 多返回什么额外字段,也别以为它更“轻量”——参数、输出、网络行为全都一样。
容易踩的坑是看到文档里混用这两个词,误以为有功能差异。实际上:
-
composer info laravel/framework≡composer show laravel/framework - 它们都走相同的解析逻辑,都读取已安装包的
composer.json(或远程包的元数据缓存) - 若包未安装且未启用
--all,两者都会报错:Package laravel/framework is not installed
想查未安装包的作者?得用 composer search + show 组合
如果只是知道包名前缀(比如想找所有带 “cache” 的包),composer search cache 能列出匹配项,但它不返回作者。必须先搜出包名,再对每个结果执行 composer show。
注意兼容性问题:
-
composer search在 Composer 2.2+ 默认禁用(因依赖 Packagist API,且易被限流),需手动开启:composer config -g repo.packagist.org.allow_ssl_downgrade true(不推荐)或改用网页版搜索; - 更稳的方式是访问 https://www.php.cn/link/5d2e892c81e5fafc51ab0973879563a0 直接搜,点进详情页看
Authors区域——那里显示的是 Packagist 抓取并标准化后的作者列表,有时比本地show更全; - 如果脚本化获取,建议调用 Packagist API:
curl https://www.php.cn/link/5d2e892c81e5fafc51ab0973879563a0packages/monolog/monolog.json,响应体里的package.maintainers字段比author更接近实际维护者。
作者信息从来就不是强约束字段,不同包维护习惯差异很大。别指望靠一个命令把所有包的“真实作者”理清楚——能定位到维护仓库、看清当前安装版本的来源,就已经够用了。










