我正在Laravel 5应用程序中开发一组包装。
所有的包都具有以下结构。
文件夹结构:
Vendor/Package/src
composer.json
"autoload": {
"psr-4": {
"Vendor\Package\": "src/"
}
},
我希望能够在包含正在开发的包的vendors/
文件夹之外有一个单独的文件夹。因为它们是申请的基础。注意:这些包不会通过composer下载,只是使用composer自动加载。
例如
Laravel-App
app
bootstrap
config
database
public
...
src
包含上述所有包的src
目录。
每个包中都有一个composer.json并不相关,因为它们不是由composer(,yet)管理的。如果包已安装/更新,它们的自动加载定义将仅用于Composer的自动加载转储。这里没有作曲家处理,只是坐在一个文件夹里。
有多种方法可以解决自动加载问题。你可以:
- 使用PHP自动加载函数注册您自己的自动加载程序(在引导过程中)
- 使用Laravel的Autoloader来添加这些包的路径(在应用程序引导期间,在Laravel Autoloader init之后的某个位置)
- 使用Composer的Autoloader将路径添加到这些包(在应用程序引导期间,Composer初始化之后)
- 但最简单的方法是在主应用程序的
composer.json
文件的自动加载部分中定义映射。然后,在安装或更新Composer管理的依赖项后,它们将被包含在转储的自动加载器中