⚙️ Exec
执行项目 vendor/bin 下的厂商二进制文件,等价于运行 composer exec <binary> -- <args...>。
何时使用
当需要在 Go 代码中以项目上下文调用已安装的 CLI 工具(如 phpunit、phpstan、psql 等 vendor bin)时使用,无需手动拼接 vendor/bin 路径。
签名
go
func (c *Composer) Exec(binary string, args ...string) (string, error)参数
| 参数 | 类型 | 说明 |
|---|---|---|
binary | string | 厂商二进制文件名,例如 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。