🗺️ GetNamespaceMap
Extracts the namespace-to-directory mapping from autoload.psr-4 in composer.json.
When to use
Use it when you need to know the project's autoloading structure, generate code into the correct directory, or build an IDE index. It reads composer.json directly without running any Composer commands.
Signature
go
func (c *Composer) GetNamespaceMap() (map[string]string, error)Parameters
This method takes no parameters.
Return value
| Return value | Type | Description |
|---|---|---|
| First return value | map[string]string | Namespace-to-directory mapping, e.g. App\\ → src/ |
| Second return value | error | Returned when reading or parsing composer.json fails |
Note
When a namespace maps to multiple directories, this method takes the first directory as the representative value.
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)
}
nsMap, err := comp.GetNamespaceMap()
if err != nil {
log.Fatalf("failed to get namespace map: %v", err)
}
for ns, dir := range nsMap {
fmt.Printf("%s => %s\n", ns, dir)
}
}Advanced
- To read the full
composer.json(including the rawautoloadandautoload-devstructure), use ReadComposerJson. - To regenerate the autoloader, use
DumpAutoload. - This method only parses
psr-4; it does not handleclassmaporfilesrules.