➖ RemoveMultiple
Removes multiple package dependencies in batch, equivalent to composer remove [--dev] pkg1 pkg2 ....
When to use
- 🧹 Clean up multiple unused dependencies at once, avoiding repeated dependency resolution triggered by running
composer removemultiple times. - ♻️ Batch-remove a group of related packages during a refactor.
- ⚡ Improve batch operation efficiency (single resolution, single lock file update).
Signature
go
func (c *Composer) RemoveMultiple(packages []string, dev bool) errorParameters
| Parameter | Type | Description |
|---|---|---|
packages | []string | The list of package names to remove |
dev | bool | true to remove from development dependencies (require-dev) |
Return value
| Value | Type | Description |
|---|---|---|
| Error | error | Returned when an error occurs during package removal |
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)
}
// Batch remove production dependencies
if err := comp.RemoveMultiple(
[]string{"symfony/console", "symfony/process"}, false,
); err != nil {
log.Fatalf("batch remove production dependencies failed: %v", err)
}
// Batch remove development dependencies
if err := comp.RemoveMultiple(
[]string{"phpunit/phpunit", "squizlabs/php_codesniffer"}, true,
); err != nil {
log.Fatalf("batch remove development dependencies failed: %v", err)
}
}Advanced
Single removal
To remove only one package, use Remove; to attach options, use RemoveWithOptions.
Batch add
The corresponding batch add is RequireMultiple (which takes a map[string]string to carry versions).
Health-check-style batch
health_check.go provides BatchRemove(packages, dev, continueOnError), returning *BatchRemoveResult. It can continue on partial failures and aggregate results, suitable for batch scenarios that need fault tolerance.
🔍 Related methods
Remove: single removal.RequireMultiple: batch add.Reinstall: reinstall a package.