Skip to content

🏷️ SearchWithType

按关键词在 Packagist 上搜索指定类型的包,相当于执行 composer search <query> --type=<packageType>,可用于只搜索库(library)、插件(composer-plugin)或项目模板(project)等特定类型。

📋 签名

go
func (c *Composer) SearchWithType(query string, packageType string) (string, error)

📥 参数

参数类型说明
querystring搜索关键词,例如 "logger"
packageTypestring包的类型,例如 "library""composer-plugin""project""metapackage"

📤 返回值

返回值类型说明
第一个返回值stringcomposer search <query> --type=<packageType> 的标准输出文本
第二个返回值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)
	}

	// 只搜索 composer-plugin 类型的包
	output, err := comp.SearchWithType("logger", "composer-plugin")
	if err != nil {
		log.Fatalf("按类型搜索包失败: %v", err)
	}
	fmt.Println("指定类型的搜索结果:")
	fmt.Println(output)
}

🚀 进阶

  • 📋 不限类型的常规搜索:使用 Search
  • 🔎 仅匹配包名、过滤掉描述噪音:使用 SearchOnlyName
  • 📦 需要以 json 格式获取结果以便程序解析:使用 SearchWithFormat(query, format)
  • ⚠️ packageType 会以 --type=<packageType> 的形式拼接到命令行,传入空字符串会得到 --type=,可能导致 Composer 报错,请务必传入有效类型值。

基于 MIT 许可证发布