📝 NormalizeComposerJson
Formats composer.json so it conforms to the canonical field order and indentation. Equivalent to running composer normalize (requires the ergebnis/composer-normalize plugin).
When to use
Use this when the field order in composer.json is messy, indentation is inconsistent, and you want to auto-organize it into the community-standard format. It is commonly run before commits or in PR checks to maintain consistency.
Signature
go
func (c *Composer) NormalizeComposerJson() (string, error)Parameters
This method takes no parameters.
Return value
| Return value | Type | Description |
|---|---|---|
| First return value | string | The output of the formatting command |
| Second return value | error | Returned when formatting fails (including when the plugin is not installed) |
Example
go
package main
import (
"fmt"
"log"
"strings"
"github.com/scagogogo/composer-skills/pkg/composer"
)
func main() {
comp, err := composer.New(composer.DefaultOptions())
if err != nil {
log.Fatalf("init failed: %v", err)
}
output, err := comp.NormalizeComposerJson()
if err != nil {
if strings.Contains(err.Error(), "command not found") {
fmt.Println("please install the plugin first: composer global require ergebnis/composer-normalize")
return
}
log.Fatalf("formatting failed: %v", err)
}
fmt.Println("formatting done:", output)
}Advanced
- To only check whether it is already normalized without modifying the file, use
CheckNormalization(). - This method depends on a third-party plugin; native Composer does not ship a
normalizesubcommand. - After formatting, running ValidateStrict for a strict validation is the recommended flow.