Skip to content

🔎 SearchOnlyName

仅按包名在 Packagist 上搜索包,不匹配包描述,相当于执行 composer search <query> --only-name,适合需要精确名称匹配、减少搜索噪音的场景。

📋 签名

go
func (c *Composer) SearchOnlyName(query string) (string, error)

📥 参数

参数类型说明
querystring搜索关键词,例如 "logger""symfony/console"

📤 返回值

返回值类型说明
第一个返回值stringcomposer 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)
  • 🏷️ 按包类型筛选(如 librarycomposer-plugin):使用 SearchWithType
  • ⚠️ 本方法仅匹配包名,描述中包含关键词但名称不匹配的包不会出现在结果中,因此结果通常比 Search 更少、更精准。

基于 MIT 许可证发布