➕ RequirePackage
Adds a new dependency package to the project, equivalent to composer require [--dev] package/name:version.
When to use
- 🆕 Introduce a new dependency to the project (production or development).
- 🔒 Lock a specific version constraint, e.g.
^5.0. - 🧪 Combine with
RequireDryRunto preview before the real addition.
Signature
go
func (c *Composer) RequirePackage(packageName string, version string, dev bool) errorParameters
| Parameter | Type | Description |
|---|---|---|
packageName | string | The name of the package to add, e.g. symfony/console |
version | string | Version constraint, e.g. ^5.0; pass an empty string to use the latest version |
dev | bool | true to add as a development dependency (require-dev) |
Return value
| Value | Type | Description |
|---|---|---|
| Error | error | Returned when an error occurs during package addition |
Example
go
package main
import (
"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)
}
// Add a production dependency
if err := comp.RequirePackage("symfony/console", "^5.0", false); err != nil {
log.Fatalf("add production dependency failed: %v", err)
}
// Add a development dependency
if err := comp.RequirePackage("phpunit/phpunit", "^9.0", true); err != nil {
log.Fatalf("add development dependency failed: %v", err)
}
}Advanced
RequirePackageWithOptions
Use this when you need to attach flags such as --prefer-source or --no-update:
go
func (c *Composer) RequirePackageWithOptions(packageName, version string, options map[string]string) erroroptions is an options map; pass an empty string for valueless flags.
Batch add
To add multiple packages at once, use RequireMultiple (additional_methods.go), avoiding the repeated dependency resolution that comes from running composer require multiple times.
🔍 Related methods
Remove: remove a dependency.RequireDryRun: dry-run to preview the addition result.