#!/usr/bin/env php setLocalRepository(new Repository\FilesystemRepository(new JsonFile($vendorPath.'/.composer/installed.json'))); $rm->setRepositoryClass('composer', 'Composer\Repository\ComposerRepository'); $rm->setRepositoryClass('pear', 'Composer\Repository\PearRepository'); $rm->setRepositoryClass('package', 'Composer\Repository\PackageRepository'); // initialize download manager $dm = new Downloader\DownloadManager(); $dm->setDownloader('git', new Downloader\GitDownloader()); $dm->setDownloader('pear', new Downloader\PearDownloader()); $dm->setDownloader('zip', new Downloader\ZipDownloader()); // initialize installation manager $im = new Installer\InstallationManager(); $im->addInstaller(new Installer\LibraryInstaller($vendorPath, $dm, $rm->getLocalRepository(), null)); // load package $loader = new Package\Loader\ArrayLoader($rm); $file = new JsonFile('composer.json'); if (!$file->exists()) { throw new \RuntimeException('The composer.json file could not be found in the current directory'); } $packageConfig = $file->read(); $package = $loader->load($packageConfig); // load default repository unless it's explicitly disabled if (!isset($packageConfig['repositories']['packagist']) || $packageConfig['repositories']['packagist'] !== false) { $rm->addRepository(new Repository\ComposerRepository('http://packagist.org')); } // init locker $locker = new Package\Locker(new JsonFile('composer.lock'), $rm); // initialize composer $composer = new Composer(); $composer->setPackage($package); $composer->setLocker($locker); $composer->setRepositoryManager($rm); $composer->setDownloadManager($dm); $composer->setInstallationManager($im); // run the command application $application = new ComposerApplication($composer); $application->run();