🔎 SearchOnlyName
仅按包名在 Packagist 上搜索包,不匹配包描述,相当于执行 composer search <query> --only-name,适合需要精确名称匹配、减少搜索噪音的场景。
📋 签名
go
func (c *Composer) SearchOnlyName(query string) (string, error)📥 参数
| 参数 | 类型 | 说明 |
|---|---|---|
query | string | 搜索关键词,例如 "logger"、"symfony/console" |
📤 返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 第一个返回值 | string | composer search <query> --only-name 的标准输出文本,每行一个匹配的包名 |
| 第二个返回值 | error | 执行过程中发生错误时返回,nil 表示成功 |
📝 示例
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("初始化 Composer 失败: %v", err)
}
output, err := comp.SearchOnlyName("logger")
if err != nil {
log.Fatalf("按名称搜索包失败: %v", err)
}
fmt.Println("按名称搜索结果:")
fmt.Println(output)
}🚀 进阶
- 📋 同时匹配描述与名称的常规搜索:使用 Search。
- 📦 需要按 JSON 等格式解析结果时:使用
SearchWithFormat(query, format)。 - 🏷️ 按包类型筛选(如
library、composer-plugin):使用 SearchWithType。 - ⚠️ 本方法仅匹配包名,描述中包含关键词但名称不匹配的包不会出现在结果中,因此结果通常比
Search更少、更精准。