✅ IsPackageInstalled
检查指定包是否已安装,等价于执行 composer show <包名> 并判断命令是否成功。
何时使用
在调用某个包提供的功能前,先确认它是否已被安装到当前项目。例如工具链在加载插件前,先用它判断插件包是否存在。
签名
go
func (c *Composer) IsPackageInstalled(packageName string) bool参数
| 参数 | 类型 | 说明 |
|---|---|---|
packageName | string | 要检查的包名,如 symfony/console |
返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 唯一返回值 | bool | 包已安装返回 true,未安装或命令失败返回 false |
示例
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)
}
if comp.IsPackageInstalled("symfony/console") {
fmt.Println("symfony/console 已安装 ✅")
} else {
fmt.Println("symfony/console 未安装 ❌")
}
}进阶
- 想拿到包的已安装版本号,使用 GetRequireWithVersion。
- 想判断包是否为开发依赖(require-dev),使用 IsPackageDev。
- 获取全部已安装包名列表使用 GetInstalledPackageNames。