🔎 Search
在 Packagist 上按关键词搜索包,等价于 composer search query。
何时使用
- 🌐 想找一个具备某能力的包,但不确定包名。
- 📦 在引入依赖前对比候选包。
- 🧪 脚本里动态发现可用包。
签名
go
func (c *Composer) Search(query string) (string, error)参数
| 参数 | 类型 | 说明 |
|---|---|---|
query | string | 搜索关键词 |
返回值
| 值 | 类型 | 说明 |
|---|---|---|
| 输出 | string | 搜索结果的标准输出 |
| 错误 | error | 搜索过程中发生错误时返回 |
示例
go
package main
import (
"fmt"
"log"
"github.com/scagogogo/composer-skills/pkg/composer"
)
func main() {
comp, err := composer.New(composer.DefaultOptions())
if err != nil {
log.Fatalf("初始化失败: %v", err)
}
output, err := comp.Search("logger")
if err != nil {
log.Fatalf("搜索包失败: %v", err)
}
fmt.Println("搜索结果:", output)
}进阶
结构化结果
需要程序化处理结果时改用 SearchInfo,它执行 composer search query --format=json 并解析为 *SearchResult。
收窄搜索范围
SearchOnlyName(query):仅按包名匹配,过滤描述噪音。SearchWithType(query, packageType):按类型(如composer-plugin)筛选。SearchWithFormat(query, format):指定输出格式。
🔍 相关方法
SearchInfo:结构化搜索结果。RequirePackage:搜索到合适包后添加为依赖。