我目前正在开发一个具有以下目录结构的小型框架:
/
-- app
-- vendor
-- framework-vendor
-- framework-package
-- src
目前我在我的框架中的composer.json是两个PSR-4实例:
"autoload": {
"psr-4" : {
"FrameworkName\\" : "src/",
"": "../../../app"
}
}
这样做的目的是位于app
的实际项目可以使用\FrameworkName\foo\bar\Class
使用框架中的类,也可以使用\foo\bar\Class
使用自己的类。唯一的限制是供应商目录和app目录之间的相对深度。
最好的方法是什么?只需包含第二个自动加载器或强制执行此目录结构,让Composer负责生成自动加载器?
答案 0 :(得分:0)
不强制相对路径深度的解决方案是使用Composer返回的自动加载器,如下所示:
$loader = require 'vendor/autoload.php';
$loader->add('', __DIR__ . '/app/');