使用composer autoloader如何在包之间自动加载?
例如:如何从myPackage中自动加载monolog类?
/someapp
/someapp/index.php
/someapp/vendor
/someapp/vendor/myPackage
/someapp/vendor/monolog
如果我的软件包有/ vendor并且使用我的软件包的软件包有一个/ vendor,并且使用我的软件包使用我的软件包的软件包有一个....等,我可以看到/ vendor目录的指数爆炸。
那么我们如何自动加载第三方部分依赖性跨包?
答案 0 :(得分:0)
您只需在软件包的composer.json
中定义您的软件包require
是另一个软件包,即可。当someapp
正在安装作曲家依赖关系时,依赖关系(依赖关系等的依赖关系等递归ad absurdum)将全部安装在someapp/vendor
中。在someapp/index.php
中,您将包含自动加载文件,该文件允许任何人从任何已安装的软件包中自动加载类。
即:
mypackage的/ composer.json
"require": {
"monolog": "*"
}
someapp / composer.json
"require": {
"mypackage": "*"
}
安装:
$ composer install
结果:
$ ls someapp/vendor
mypackage monolog