Skip to content

🚀 自动安装示例

本示例演示如何使用 installer 包一键安装 Composer 和 PHP,适合 CI/CD 流水线或 AI 自动化场景。

📦 核心能力

🔧 代码示例

go
package main

import (
    "fmt"
    "log"
    "time"

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

func main() {
    // 配置:SmartConfig 自动按平台选最佳策略
    cfg := installer.SmartConfig()
    cfg.AutoInstallPHP = true  // PHP 缺失时自动装

    opts := &installer.InstallOptions{
        Config:     cfg,
        MaxRetries: 3,
        RetryDelay: 5 * time.Second,
        ProgressCallback: func(p installer.InstallProgress) {
            fmt.Printf("[%s] %d%% %s\n", p.Stage, p.Percent, p.Message)
        },
    }

    // 一键安装
    result, err := installer.EnsureComposerInstalled(opts)
    if err != nil || !result.Success {
        log.Fatalf("安装失败: %v", err)
    }

    fmt.Printf("Composer: %s @ %s\n", result.Version, result.ComposerPath)
    fmt.Printf("PHP: %s\n", result.PHPVersion)
}

🖥️ 平台策略

平台PHP 安装方式Composer 安装方式
🐧 Linuxapt / dnf / pacman / apk(按发行版)包管理器优先,否则下载 phar
🍎 macOSbrew install phpbrew install composer 或下载 phar
🪟 Windows从 php.net 下载 zip 解压到用户目录下载 composer.phar + .cmd 包装

🎯 何时用

  • CI 容器启动 — runner 上无 PHP/Composer,一条命令搞定
  • AI 自动化 — AI 编写脚本时无需关心环境,调用 EnsureComposerInstalled 即可
  • 开发机初始化 — 新入职同事装环境,脚本一跑就完

CLI 一键命令

composer-skills install 命令封装了上述全部逻辑,直接在终端执行:

bash
composer-skills install            # 装 Composer + PHP
composer-skills install --php-only # 仅装 PHP

🧭 相关文档

基于 MIT 许可证发布