🔧 GetConfigWithGlobal
Reads the current value of a Composer configuration item, with the option to read the global or project configuration. Equivalent to running composer config [--global] <setting>.
When to use
Use it when you need to obtain the value of a single configuration item (such as preferred-install, bin-dir, vendor-dir) programmatically and make decisions or log based on it. global=true reads the global value from COMPOSER_HOME/config.json; global=false reads the value from the current project's composer.json.
Signature
go
func (c *Composer) GetConfigWithGlobal(setting string, global bool) (string, error)Parameters
| Parameter | Type | Description |
|---|---|---|
setting | string | Configuration item name, such as preferred-install, bin-dir |
global | bool | true reads the global configuration, false reads the project configuration |
Return value
| Return value | Type | Description |
|---|---|---|
| First return value | string | Value of the configuration item (leading and trailing whitespace removed) |
| Second return value | error | Returned when execution fails |
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)
}
// Read project-level configuration
install, err := comp.GetConfigWithGlobal("preferred-install", false)
if err != nil {
log.Fatalf("failed to read configuration: %v", err)
}
fmt.Println("Project preferred-install:", install)
// Read global configuration
home, err := comp.GetConfigWithGlobal("home", true)
if err != nil {
log.Fatalf("failed to read global configuration: %v", err)
}
fmt.Println("Global home:", home)
}Advanced
- To list all configuration items at once instead of a single one, use ListConfig or the structured version GetConfigStructured.
- To write a configuration item, use SetConfigWithGlobal.
- To find out which file a value comes from, use
GetConfigSource(key).