Skip to content

Instantly share code, notes, and snippets.

@geerteltink
Created February 2, 2016 16:56
Show Gist options
  • Select an option

  • Save geerteltink/31a9972e1738ec77d8e3 to your computer and use it in GitHub Desktop.

Select an option

Save geerteltink/31a9972e1738ec77d8e3 to your computer and use it in GitHub Desktop.
public static function dumpVersionsClass(Event $composerEvent)
{
$io = $composerEvent->getIO();
$io->write('<info>Generating version class...</info>');
$composer = $composerEvent->getComposer();
// Get root package
$rootPackage = $composer->getPackage();
while ($rootPackage instanceof AliasPackage) {
$rootPackage = $rootPackage->getAliasOf();
}
if ('ocramius/package-versions' === $rootPackage->getName()) {
$baseDir = dirname($composer->getConfig()->get('vendor-dir'));
} else {
$baseDir = $composer->getConfig()->get('vendor-dir') . '/ocramius/package-versions';
}
self::writeVersionClassToFile($baseDir, self::generateVersionsClass($composer));
self::reDumpAutoloader($composer);
$io->write('<info>...done generating version class</info>');
}
/**
* @param string $versionClassSource
*/
private static function writeVersionClassToFile(string $baseDir, string $versionClassSource)
{
file_put_contents($baseDir . '/src/PackageVersions/Versions.php', $versionClassSource, 0664);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment