Skip to content

🚀 CreateProject

基于一个已有的包(如框架骨架)创建一个全新的 Composer 项目,等价于执行 composer create-project package/name directory version

何时使用

当你需要快速搭建一个新项目脚手架时使用,例如初始化一个 Laravel、Symfony 或 Yii 应用。传入空 version 表示安装最新版本;传入版本约束(如 ^5.0)则安装指定版本。

签名

go
func (c *Composer) CreateProject(packageName string, directory string, version string) error

参数

参数类型说明
packageNamestring包名,例如 laravel/laravelsymfony/website-skeleton
directorystring项目要创建到的目标目录
versionstring版本约束;传空字符串则使用最新版本

返回值

error:创建项目过程中发生错误时返回相应错误信息,成功时为 nil

示例

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)
	}

	// 创建最新版本的 Laravel 项目
	if err := comp.CreateProject("laravel/laravel", "my-project", ""); err != nil {
		log.Fatalf("创建项目失败: %v", err)
	}

	// 创建指定版本的 Symfony 项目
	if err := comp.CreateProject("symfony/website-skeleton", "symfony-project", "^5.0"); err != nil {
		log.Fatalf("创建项目失败: %v", err)
	}

	fmt.Println("项目创建完成")
}

进阶

  • 需要传入 --no-dev--prefer-dist--stability 等额外选项时,使用 CreateProjectWithOptions 变体。
  • 若只是初始化一个空的 composer.json,使用 InitProject 更合适。
  • 创建完成后可通过 GetProjectInfo 读取项目基本信息。

基于 MIT 许可证发布