Skip to content

🐘 ExecPHP

使用指定的 PHP 二进制执行厂商二进制文件。等价于运行 composer exec --php=<php> <binary> -- <args...>

何时使用

当项目存在多个 PHP 版本,需要明确指定用某个 PHP 解释器运行 vendor bin(如测试不同 PHP 版本兼容性)时使用。

签名

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

参数

参数类型说明
phpstringPHP 可执行文件路径,例如 /usr/bin/php8.2
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.ExecPHP("/usr/bin/php8.2", "phpunit", "--version")
	if err != nil {
		log.Fatalf("执行失败: %v", err)
	}
	fmt.Println(output)
}

进阶

  • 不需要指定 PHP 时用更简单的 Exec
  • 列出可用二进制用 ExecWithList
  • 在指定工作目录执行可参考 ExecWithWorkingDir,结合 Exec 使用。

基于 MIT 许可证发布