Composer自动加载几个路径作为一个命名空间

时间:2015-08-03 15:19:49

标签: php namespaces composer-php

我有这个文件夹结构:

core/
core/db/
core/db/beans

我在namespace AAA\Core\DataBase;core/db/中都有core/db/beans的课程。

在我的 composer.json 文件中,我有:

"autoload": {
        "psr-4": {
            "AAA\\Core\\": "core/",
            "AAA\\Core\\DataBase\\": "core/db/"
        }
    }

之后,我可以使用core/文件夹中的use AAA\Core\DataBase\ClassName;类,但不能使用core/db/beans。我收到了“致命错误:未找到班级”。如何在同一名称空间中添加几个文件夹?有可能吗?

1 个答案:

答案 0 :(得分:0)

正如PSR-4标准所说:

  

加载与完全限定类名相对应的文件时

     
      
  1. 一个连续的一系列一个或多个前导命名空间和子命名空间名称,不包括前导命名空间分隔符,在完全限定的类名中("命名空间前缀")至少对应一个&# 34;基本目录"。
  2.   
  3. "命名空间前缀"之后的连续子命名空间名称。对应于"基目录"中的子目录,其中命名空间分隔符表示目录分隔符。子目录名称必须与子命名空间名称的大小写匹配。
  4.   

因此,您的命名空间必须与您的文件夹结构相对应。

PSR-4 Standard