🛠️ InstallWithOptions
Installs project dependencies using a custom option map; it is the flexible variant of Install.
When to use
Use this when the two boolean parameters of Install are not enough and you need to combine multiple native Composer options such as --prefer-dist, --no-scripts, --no-progress, or --classmap-authoritative.
Signature
go
func (c *Composer) InstallWithOptions(options map[string]string) errorParameters
| Parameter | Type | Description |
|---|---|---|
options | map[string]string | Install option map; keys are option names (without --), values are option values, and boolean options take an empty string |
Return value
error: Returns the corresponding error message when an error occurs during installation; 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("Initialization failed: %v", err)
}
// Typical production combination
options := map[string]string{
"no-dev": "",
"optimize-autoloader": "",
"prefer-dist": "",
"no-progress": "",
}
if err := comp.InstallWithOptions(options); err != nil {
log.Fatalf("Failed to install dependencies: %v", err)
}
fmt.Println("Dependencies installed")
}Advanced
- The option map is expanded into command-line arguments in a deterministic order, so repeated calls produce reproducible results.
- For simple scenarios that only need
--no-dev/--optimize,Installis more straightforward. - For single-option convenience wrappers, see
InstallWithPreferDist,InstallNoScripts, etc. - To simulate an install, see
InstallDryRun.