diff --git a/README.md b/README.md index e1ab0fb3..326a1191 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,13 @@ var_dump($version); // 1.0.0@0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33 composer require ocramius/package-versions ``` +It is suggested that you re-dump the autoloader in order to prevent +autoload I/O when accessing the `PackageVersions\Versions` API: + +```sh +composer dump-autoload --optimize +``` + ### Use-cases This repository implements `PackageVersions\Versions::getVersion()` in such a way that no IO diff --git a/src/PackageVersions/Installer.php b/src/PackageVersions/Installer.php index 61b22592..9f4520d3 100644 --- a/src/PackageVersions/Installer.php +++ b/src/PackageVersions/Installer.php @@ -92,8 +92,6 @@ public static function dumpVersionsClass(Event $composerEvent) $composer->getPackage() ); - self::reDumpAutoloader($composer); - $io->write('ocramius/package-versions: ...done generating version class'); } @@ -157,23 +155,6 @@ private static function getRootPackageAlias(RootPackageInterface $rootPackage) : return $package; } - /** - * @param Composer $composer - * - * @return void - */ - private static function reDumpAutoloader(Composer $composer) - { - $composer->getAutoloadGenerator()->dump( - $composer->getConfig(), - $composer->getRepositoryManager()->getLocalRepository(), - $composer->getPackage(), - $composer->getInstallationManager(), - 'composer', - true // CBA to provide this manually, for now - ); - } - /** * @param Locker $locker * @param RootPackageInterface $rootPackage diff --git a/test/PackageVersionsTest/InstallerTest.php b/test/PackageVersionsTest/InstallerTest.php index ef96f6da..bb42c9f4 100644 --- a/test/PackageVersionsTest/InstallerTest.php +++ b/test/PackageVersionsTest/InstallerTest.php @@ -86,7 +86,6 @@ public function testDumpVersionsClass() { $config = $this->getMockBuilder(Config::class)->disableOriginalConstructor()->getMock(); $locker = $this->getMockBuilder(Locker::class)->disableOriginalConstructor()->getMock(); - $autoloadGenerator = $this->getMockBuilder(AutoloadGenerator::class)->disableOriginalConstructor()->getMock(); $repositoryManager = $this->getMockBuilder(RepositoryManager::class)->disableOriginalConstructor()->getMock(); $installManager = $this->getMockBuilder(InstallationManager::class)->disableOriginalConstructor()->getMock(); $repository = $this->getMock(InstalledRepositoryInterface::class); @@ -129,12 +128,10 @@ public function testDumpVersionsClass() ], ]); - $autoloadGenerator->expects(self::once())->method('dump'); $repositoryManager->expects(self::any())->method('getLocalRepository')->willReturn($repository); $this->composer->expects(self::any())->method('getConfig')->willReturn($config); $this->composer->expects(self::any())->method('getLocker')->willReturn($locker); - $this->composer->expects(self::any())->method('getAutoloadGenerator')->willReturn($autoloadGenerator); $this->composer->expects(self::any())->method('getRepositoryManager')->willReturn($repositoryManager); $this->composer->expects(self::any())->method('getPackage')->willReturn($package); $this->composer->expects(self::any())->method('getInstallationManager')->willReturn($installManager); @@ -201,7 +198,6 @@ public function testDumpVersionsClassNoDev() { $config = $this->getMockBuilder(Config::class)->disableOriginalConstructor()->getMock(); $locker = $this->getMockBuilder(Locker::class)->disableOriginalConstructor()->getMock(); - $autoloadGenerator = $this->getMockBuilder(AutoloadGenerator::class)->disableOriginalConstructor()->getMock(); $repositoryManager = $this->getMockBuilder(RepositoryManager::class)->disableOriginalConstructor()->getMock(); $installManager = $this->getMockBuilder(InstallationManager::class)->disableOriginalConstructor()->getMock(); $repository = $this->getMock(InstalledRepositoryInterface::class); @@ -235,12 +231,10 @@ public function testDumpVersionsClassNoDev() ], ]); - $autoloadGenerator->expects(self::once())->method('dump'); $repositoryManager->expects(self::any())->method('getLocalRepository')->willReturn($repository); $this->composer->expects(self::any())->method('getConfig')->willReturn($config); $this->composer->expects(self::any())->method('getLocker')->willReturn($locker); - $this->composer->expects(self::any())->method('getAutoloadGenerator')->willReturn($autoloadGenerator); $this->composer->expects(self::any())->method('getRepositoryManager')->willReturn($repositoryManager); $this->composer->expects(self::any())->method('getPackage')->willReturn($package); $this->composer->expects(self::any())->method('getInstallationManager')->willReturn($installManager); @@ -309,7 +303,6 @@ public function testDumpVersionsWithoutPackageSourceDetails() { $config = $this->getMockBuilder(Config::class)->disableOriginalConstructor()->getMock(); $locker = $this->getMockBuilder(Locker::class)->disableOriginalConstructor()->getMock(); - $autoloadGenerator = $this->getMockBuilder(AutoloadGenerator::class)->disableOriginalConstructor()->getMock(); $repositoryManager = $this->getMockBuilder(RepositoryManager::class)->disableOriginalConstructor()->getMock(); $installManager = $this->getMockBuilder(InstallationManager::class)->disableOriginalConstructor()->getMock(); $repository = $this->getMock(InstalledRepositoryInterface::class); @@ -340,12 +333,10 @@ public function testDumpVersionsWithoutPackageSourceDetails() ], ]); - $autoloadGenerator->expects(self::once())->method('dump'); $repositoryManager->expects(self::any())->method('getLocalRepository')->willReturn($repository); $this->composer->expects(self::any())->method('getConfig')->willReturn($config); $this->composer->expects(self::any())->method('getLocker')->willReturn($locker); - $this->composer->expects(self::any())->method('getAutoloadGenerator')->willReturn($autoloadGenerator); $this->composer->expects(self::any())->method('getRepositoryManager')->willReturn($repositoryManager); $this->composer->expects(self::any())->method('getPackage')->willReturn($package); $this->composer->expects(self::any())->method('getInstallationManager')->willReturn($installManager); @@ -417,7 +408,6 @@ public function testDumpsVersionsClassToSpecificLocation(RootPackageInterface $r { $config = $this->getMockBuilder(Config::class)->disableOriginalConstructor()->getMock(); $locker = $this->getMockBuilder(Locker::class)->disableOriginalConstructor()->getMock(); - $autoloadGenerator = $this->getMockBuilder(AutoloadGenerator::class)->disableOriginalConstructor()->getMock(); $repositoryManager = $this->getMockBuilder(RepositoryManager::class)->disableOriginalConstructor()->getMock(); $installManager = $this->getMockBuilder(InstallationManager::class)->disableOriginalConstructor()->getMock(); $repository = $this->getMock(InstalledRepositoryInterface::class); @@ -440,12 +430,10 @@ public function testDumpsVersionsClassToSpecificLocation(RootPackageInterface $r 'packages-dev' => [], ]); - $autoloadGenerator->expects(self::once())->method('dump'); $repositoryManager->expects(self::any())->method('getLocalRepository')->willReturn($repository); $this->composer->expects(self::any())->method('getConfig')->willReturn($config); $this->composer->expects(self::any())->method('getLocker')->willReturn($locker); - $this->composer->expects(self::any())->method('getAutoloadGenerator')->willReturn($autoloadGenerator); $this->composer->expects(self::any())->method('getRepositoryManager')->willReturn($repositoryManager); $this->composer->expects(self::any())->method('getPackage')->willReturn($rootPackage); $this->composer->expects(self::any())->method('getInstallationManager')->willReturn($installManager);