🏷️ SearchWithType
按关键词在 Packagist 上搜索指定类型的包,相当于执行 composer search <query> --type=<packageType>,可用于只搜索库(library)、插件(composer-plugin)或项目模板(project)等特定类型。
📋 签名
go
func (c *Composer) SearchWithType(query string, packageType string) (string, error)📥 参数
| 参数 | 类型 | 说明 |
|---|---|---|
query | string | 搜索关键词,例如 "logger" |
packageType | string | 包的类型,例如 "library"、"composer-plugin"、"project"、"metapackage" |
📤 返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 第一个返回值 | string | composer 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 报错,请务必传入有效类型值。