1

假设我的文件夹布局为

projectA
projectA\src
projectA\vendor\autoload.php

projectB
projectB\src
projectB\vendor\autoload.php

projectC
projectC\src
projectC\vendor\autoload.php

这些项目需要处于同一级别,并且需要彼此共存,例如projectA可能使用来自projectBand的代码projectC,反之亦然,因此不能将它们放入vendor文件夹中。

问题是:autoload.php在每个项目中都能够自动加载自己的src文件vendor夹,但是如何为其他项目自动加载呢?

假设他们邻居的项目将文件夹名称作为 PHP 命名空间,是否可以设置一个 autoload.php(通过作曲家),以便将来当我添加新项目文件夹时,自动加载会神奇地工作?

4

1 回答 1

1

您可以在每个项目中编写带有自定义自动加载配置的 composer.json .. 示例:

项目A:

"autoload": {
    "psr-0": {
        "ProjectB\\": "path/ProjectB/src/",
        "ProjectC\\": "path/ProjectC/src/"
    }
},

项目B:

"autoload": {
    "psr-0": {
        "ProjectA\\": "path/ProjectA/src/",
        "ProjectC\\": "path/ProjectC/src/"
    }
},

Composer 是为管理单个项目的依赖关系而设计的。加载更多不同项目的 autoload.php 不是一个好主意。但是使用这种方法,您可以为每个项目创建一个完整的自动加载器

于 2014-08-17T22:48:56.663 回答