作曲家跨包自动加载php

Using composer autoloader how does one autoload between packages?

For example: How to autoload monolog classes from within myPackage?

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

I could see exponential explosion of /vendor directories if my package has a /vendor and an package using my package has a /vendor and a package using that package that uses my package has one....etc.

So how do we autoload third part dependancies cross package?

You simply define in your package's composer.json that your package requires another package, and that be it. When someapp is installing composer dependencies, the dependencies of dependencies (of dependencies etc. etc. recursively ad absurdum) will all be installed in someapp/vendor. In someapp/index.php you're then including the autoload file, which allows anyone to autoload classes from any installed package.

I.e.:

mypackage/composer.json

"require": {
    "monolog": "*"
}

someapp/composer.json

"require": {
    "mypackage": "*"
}

Install:

$ composer install

Result:

$ ls someapp/vendor
mypackage     monolog