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 require
s 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