Skip to content

⚙️ LocalExec

执行本地包中安装的二进制文件(执行 composer exec)。

何时使用

需要在 Go 程序里调用 vendor/bin 下的工具(如 PHPUnit、PHPStan 等)并复用 Composer 解析的工作目录与环境时使用。

签名

go
func (c *Composer) LocalExec(command string, args ...string) (string, error)

参数

参数类型说明
commandstring要执行的本地二进制名称,例如 phpunit
args...string透传给该二进制的参数

返回值

  • string:命令的标准输出文本
  • 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)
    }

    // 执行 vendor/bin 下的 phpunit,附带 --version
    output, err := comp.LocalExec("phpunit", "--version")
    if err != nil {
        log.Fatalf("执行失败: %v", err)
    }
    fmt.Println(output)
}

进阶

  • 该方法构造 composer exec <command> <args...> 命令
  • 若需附加选项(如 -- 分隔符或工作目录),使用 LocalExecWithOptions(见 diagnosis.go)
  • 若要执行任意二进制而非本地包工具,参考 Exec 系列(见 exec.go)

基于 MIT 许可证发布