假设我的文件夹布局为
projectA
projectA\src
projectA\vendor\autoload.php
projectB
projectB\src
projectB\vendor\autoload.php
projectC
projectC\src
projectC\vendor\autoload.php
这些项目需要处于同一水平,并且需要彼此共存,例如: projectA
可能会使用projectB
和projectC
以及代码中的代码,因此无法将其放入vendor
文件夹中。
问题是:每个项目中的autoload.php
能够自动加载自己的src
和vendor
文件夹,但是如何为其他项目自动加载?
假设他们的邻居项目将文件夹名称作为PHP名称空间,是否可以设置autoload.php(通过作曲家),以便将来当我添加新项目文件夹时,自动加载将神奇地工作?
答案 0 :(得分: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并不是一个好主意。 但是使用这种方法,您可以为每个项目创建一个完整的自动加载器