🗺️ GetNamespaceMap
从 composer.json 的 autoload.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(含autoload、autoload-dev原始结构)使用 ReadComposerJson。 - 重新生成自动加载使用
DumpAutoload。 - 该方法仅解析
psr-4,不处理classmap与files规则。