自定义 composer 自动加载目录,加载多个包
Custom composer autoload directory, loading multiple packages
我正在 Laravel 5 应用程序中开发一组 packag。
所有包都具有以下结构。
文件夹结构:
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) 管理。如果包是 installed/updated,它们的自动加载定义将仅用于 Composer 的自动加载转储。
这里没有由 Composer 处理,只是坐在一个文件夹中。
有多种方法可以解决自动加载问题。
你可以:
- 使用 PHP 自动加载函数注册您自己的自动加载器(在 bootstrap 期间)
- 使用 Laravel 的自动加载器添加这些包的路径(在应用 bootstrap 期间,在 laravel 自动加载器初始化之后的某处)
- 使用 Composer 的自动加载器将路径添加到这些包(在应用 bootstrap 期间,在 Composer 初始化之后)
- 但最简单的方法是在主应用程序的
composer.json
文件的自动加载部分定义映射。然后它们将包含在转储的自动加载器中,在安装或更新您的 Composer 管理的依赖项之后。
我正在 Laravel 5 应用程序中开发一组 packag。
所有包都具有以下结构。
文件夹结构:
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) 管理。如果包是 installed/updated,它们的自动加载定义将仅用于 Composer 的自动加载转储。 这里没有由 Composer 处理,只是坐在一个文件夹中。
有多种方法可以解决自动加载问题。 你可以:
- 使用 PHP 自动加载函数注册您自己的自动加载器(在 bootstrap 期间)
- 使用 Laravel 的自动加载器添加这些包的路径(在应用 bootstrap 期间,在 laravel 自动加载器初始化之后的某处)
- 使用 Composer 的自动加载器将路径添加到这些包(在应用 bootstrap 期间,在 Composer 初始化之后)
- 但最简单的方法是在主应用程序的
composer.json
文件的自动加载部分定义映射。然后它们将包含在转储的自动加载器中,在安装或更新您的 Composer 管理的依赖项之后。