✨ ShowPackageInfo
Gets structured details for a given package. Internally runs composer show packageName --format=json and parses the output into *PackageInfo.
When to use
- 📋 Field-level package information (name, version, license, authors, dependencies, etc.) for further processing.
- 🤖 Automatically extract a package's
HomepageorLicensein a script. - 🔍 Programmatically determine whether a package is abandoned.
Signature
go
func (c *Composer) ShowPackageInfo(packageName string) (*PackageInfo, error)Parameters
| Parameter | Type | Description |
|---|---|---|
packageName | string | Name of the package to query |
Return value
| Value | Type | Description |
|---|---|---|
| Result | *PackageInfo | Parsed package information |
| Error | error | Returned when execution or JSON parsing fails |
Main fields of PackageInfo:
| Field | Type | Description |
|---|---|---|
Name | string | Package name |
Version | string | Current version |
Description | string | Description |
Type | string | Package type |
Homepage | string | Homepage URL |
License | []string | License list |
Authors | []PackageAuthor | Author list |
Require | map[string]string | Production dependencies |
RequireDev | map[string]string | Development dependencies |
Abandoned | interface{} | Whether abandoned (bool or string) |
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("init failed: %v", err)
}
info, err := comp.ShowPackageInfo("symfony/console")
if err != nil {
log.Fatalf("get package info failed: %v", err)
}
fmt.Printf("package %s version %s\n", info.Name, info.Version)
fmt.Printf("homepage: %s\n", info.Homepage)
fmt.Printf("license: %v\n", info.License)
}Advanced
Text output
Use ShowPackage (composer show pkg) when you only need the raw text output.
Parser function
ParsePackageInfo(output string) can parse any composer show --format=json output standalone, useful for processing JSON from other sources.
🔍 Related methods
ShowPackage: raw text output.BrowsePackage: open the browser atinfo.Homepage.