🚀 CreateProject
Creates a brand-new Composer project based on an existing package (e.g. a framework skeleton), equivalent to running composer create-project package/name directory version.
When to use
Use when you need to quickly scaffold a new project, e.g. initializing a Laravel, Symfony, or Yii application. Pass an empty version to install the latest version; pass a version constraint (e.g. ^5.0) to install a specific version.
Signature
go
func (c *Composer) CreateProject(packageName string, directory string, version string) errorParameters
| Parameter | Type | Description |
|---|---|---|
packageName | string | Package name, e.g. laravel/laravel, symfony/website-skeleton |
directory | string | Target directory where the project will be created |
version | string | Version constraint; pass an empty string to use the latest version |
Return value
error: Returns the corresponding error message if an error occurs while creating the project; nil on success.
Example
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("init failed: %v", err)
}
// Create a latest-version Laravel project
if err := comp.CreateProject("laravel/laravel", "my-project", ""); err != nil {
log.Fatalf("failed to create project: %v", err)
}
// Create a specific-version Symfony project
if err := comp.CreateProject("symfony/website-skeleton", "symfony-project", "^5.0"); err != nil {
log.Fatalf("failed to create project: %v", err)
}
fmt.Println("Project created")
}Advanced
- To pass additional options such as
--no-dev,--prefer-dist,--stability, use theCreateProjectWithOptionsvariant. - If you just want to initialize an empty
composer.json,InitProjectis more appropriate. - After creation, you can read basic project information via
GetProjectInfo.