Skip to content

🔍 Detect

在系统中检测 Composer 可执行文件,返回其完整路径。

何时使用

当你需要拿到 Composer 可执行文件的真实路径(用于直接调用、记录日志、传入 composer.NewExecutablePath 等)时使用。该方法会按"环境变量 → 默认路径 → which/where → composer.phar"的顺序逐级查找。📦

签名

go
func (d *Detector) Detect() (string, error)

参数

参数类型说明
该方法无参数,路径候选集来自 Detector 内部状态

返回值

  • string:检测到的 Composer 可执行文件完整路径。
  • error:未找到时返回 ErrExecutableNotFound"未找到composer可执行文件")。⚠️

示例

go
package main

import (
	"fmt"
	"log"

	"github.com/scagogogo/composer-skills/pkg/detector"
)

func main() {
	d := detector.NewDetector()
	path, err := d.Detect()
	if err != nil {
		log.Fatalf("未检测到 Composer: %v", err)
	}
	fmt.Printf("Composer 路径: %s\n", path)
}

进阶

  • 如需了解检测到的路径是通过哪种方式(环境变量 / 默认路径 / which)命中的,使用 DetectVerbose
  • 仅需判断是否安装而不需要路径,用 IsInstalled 更轻量。✅
  • 可通过 COMPOSER_PATH 环境变量强制指定路径,会被优先命中。🎯

基于 MIT 许可证发布