Skip to content

Instantly share code, notes, and snippets.

@simensen
Created August 30, 2012 14:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save simensen/3529607 to your computer and use it in GitHub Desktop.
Save simensen/3529607 to your computer and use it in GitHub Desktop.
Get the PSR-0 autoload definitions by a post-update/post-install Composer script.
<?php
namespace Dflydev\ClasspathResourceLocator\Composer\Scripts;
use Composer\Script\Event;
use Composer\Autoload\AutoloadGenerator;
use Composer\Repository\CompositeRepository;
class RefreshClasspath
{
public static function refreshClasspath(Event $event)
{
$composer = $event->getComposer();
$config = $composer->getConfig();
$localRepos = new CompositeRepository($composer->getRepositoryManager()->getLocalRepositories());
$package = $composer->getPackage();
$installationManager = $composer->getInstallationManager();
$autoloadGenerator = new AutoloadGenerator;
$packageMap = $autoloadGenerator->buildPackageMap($installationManager, $package, $localRepos->getPackages());
$autoloads = $autoloadGenerator->parseAutoloads($packageMap);
//
// Do something here to cache $autoloads somewhere that
// my classes can find it and will always be available.
//
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment