Skip to content

⚙️ Exec

执行项目 vendor/bin 下的厂商二进制文件,等价于运行 composer exec <binary> -- <args...>

何时使用

当需要在 Go 代码中以项目上下文调用已安装的 CLI 工具(如 phpunitphpstanpsql 等 vendor bin)时使用,无需手动拼接 vendor/bin 路径。

签名

go
func (c *Composer) Exec(binary string, args ...string) (string, error)

参数

参数类型说明
binarystring厂商二进制文件名,例如 phpunit
args...string透传给该二进制的参数列表

返回值

返回值类型说明
第一返回值string二进制执行的 stdout 输出
第二返回值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.Fatalf("初始化失败: %v", err)
	}

	output, err := comp.Exec("phpunit", "--version")
	if err != nil {
		log.Fatalf("执行失败: %v", err)
	}
	fmt.Println(output)
}

进阶

  • 列出所有可用厂商二进制文件用 ExecWithList
  • 需要指定 PHP 解释器执行可用 ExecPHP
  • 在指定工作目录执行可用 ExecWithWorkingDir;一次性执行全部二进制可用 ExecAll

基于 MIT 许可证发布