🚀 自动安装示例
本示例演示如何使用 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 安装方式 |
|---|---|---|
| 🐧 Linux | apt / dnf / pacman / apk(按发行版) | 包管理器优先,否则下载 phar |
| 🍎 macOS | brew install php | brew 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🧭 相关文档
- 📦 Installer 概览 — Config / SmartInstaller API
- 🔧 自动安装机制 — 流程详解
- 🖥️ 跨平台支持 — 三平台策略矩阵