作曲家跨包自动加载php

时间:2013-05-30 20:21:59

标签: php autoload composer-php

使用composer autoloader如何在包之间自动加载?

例如:如何从myPackage中自动加载monolog类?

/someapp
/someapp/index.php
/someapp/vendor
/someapp/vendor/myPackage
/someapp/vendor/monolog

如果我的软件包有/ vendor并且使用我的软件包的软件包有一个/ vendor,并且使用我的软件包使用我的软件包的软件包有一个....等,我可以看到/ vendor目录的指数爆炸。

那么我们如何自动加载第三方部分依赖性跨包?

1 个答案:

答案 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