作曲家psr-4自动加载与相同的键

时间:2017-02-24 13:33:00

标签: composer-php autoload psr-4

我把这个设置安装到composer.json

"autoload": {
        "psr-4": {
            "": "src/",
            "App\\": "src/App"
        }

    }

使用此文件夹结构:

src
---App
------MyClass.php --> namespace \App;
---Somedir
------Otherdir
---------OtherClass.php --> no namespace

src/App文件夹下的文件将被加载,文件不在Somedir下。

有什么问题?

1 个答案:

答案 0 :(得分:0)

您可以使用自动加载器的组合,因此调整composer.json以使用PSR-4自动加载器用于具有命名空间的类,并使用classmap自动加载器用于没有命名空间的类:

{
  "autoload": {
    "classmap": [
      "src/SomeDir"
    ],
    "psr-4": {
      "App\\": "src/App"
    }
  }
}

供参考,请参阅https://getcomposer.org/doc/04-schema.md#autoload

使用类映射自动加载器的缺点是,如果在通过类映射自动加载器加载的目录中添加或删除类,则需要重新生成类映射:

$ composer dump-autoload