Skip to content

🔍 HasExtension

检查当前 PHP 环境中是否安装了指定的扩展。

何时使用

运行依赖某个扩展的功能前做前置校验,或在 CI 中断言必需扩展(如 pdombstring)已安装时使用。

签名

go
func (c *Composer) HasExtension(extension string) (bool, error)

参数

参数类型说明
extensionstring要检查的 PHP 扩展名,例如 mbstringpdo

返回值

  • bool:扩展已安装返回 true,否则返回 false
  • error:获取扩展列表失败时返回错误

示例

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.Fatal(err)
    }

    hasJSON, err := comp.HasExtension("json")
    if err != nil {
        log.Fatalf("检查扩展失败: %v", err)
    }

    if hasJSON {
        fmt.Println("json 扩展已安装")
    } else {
        fmt.Println("json 扩展未安装")
    }
}

进阶

  • 该方法内部调用 GetExtensions 后做精确匹配
  • 若需带版本约束判断,使用 IsPlatformAvailable
  • 大批量检查时,建议一次调用 GetExtensions 自行遍历,避免重复执行命令

基于 MIT 许可证发布