🔍 Detect
在系统中检测 Composer 可执行文件,返回其完整路径。
何时使用
当你需要拿到 Composer 可执行文件的真实路径(用于直接调用、记录日志、传入 composer.New 的 ExecutablePath 等)时使用。该方法会按"环境变量 → 默认路径 → 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环境变量强制指定路径,会被优先命中。🎯