Skip to content

🗺️ GetNamespaceMap

composer.jsonautoload.psr-4 中提取命名空间到目录的映射。

何时使用

当你需要知道项目的自动加载结构、生成代码到正确目录,或构建 IDE 索引时使用。它直接读取 composer.json,不执行 Composer 命令。

签名

go
func (c *Composer) GetNamespaceMap() (map[string]string, error)

参数

该方法无参数。

返回值

返回值类型说明
第一返回值map[string]string命名空间到目录的映射,如 App\\src/
第二返回值error读取或解析 composer.json 失败时返回

说明

当某个命名空间映射到多个目录时,本方法取第一个目录作为代表值。

示例

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("初始化失败: %v", err)
	}

	nsMap, err := comp.GetNamespaceMap()
	if err != nil {
		log.Fatalf("获取命名空间映射失败: %v", err)
	}
	for ns, dir := range nsMap {
		fmt.Printf("%s => %s\n", ns, dir)
	}
}

进阶

  • 读取完整 composer.json(含 autoloadautoload-dev 原始结构)使用 ReadComposerJson
  • 重新生成自动加载使用 DumpAutoload
  • 该方法仅解析 psr-4,不处理 classmapfiles 规则。

基于 MIT 许可证发布