/** * Test checking for existing versions. * * @since 0.1.0 * * @covers PHPReleases::exists */ public function testExists() { $releases = new PHPReleases(); $this->assertTrue($releases->exists('5.0.0')); $this->assertTrue($releases->exists('7.0.0')); $this->assertFalse($releases->exists('6.0.0')); }
/** * Update the stored database. * * @since 0.1.0 * * @param Event $event The event that has called the update method. */ public static function update(Event $event) { $dbFilename = PHPReleases::getLocation(); self::maybeCreateDBFolder(dirname($dbFilename)); $io = $event->getIO(); $io->write('Fetching change logs from official PHP website...', false); $io->write(' PHP5...', false); $php5 = self::downloadFile(self::PHP_5_RELEASES); $io->write(' PHP7...', false); $php7 = self::downloadFile(self::PHP_7_RELEASES); $io->write(' done!', true); $releases = array(); $io->write('Parsing change logs to extract versions...', false); $io->write(' PHP5...', false); $php5Releases = self::parseReleases($php5); $io->write('(' . count($php5Releases) . ' releases)', false); $releases = array_merge($releases, $php5Releases); $io->write(' PHP7...', false); $php7Releases = self::parseReleases($php7); $io->write('(' . count($php7Releases) . ' releases)', false); $releases = array_merge($releases, $php7Releases); $io->write(' done!', true); ksort($releases, SORT_NATURAL); self::generateConfig($releases, $dbFilename); $io->write('The PHP Releases database has been updated.', true); }
/** * Get a version lesser or equal than the milestone. * * @since 0.2.4 * * @param string $milestone A version milestone that is used to define the requirement. * * @return string Version number that meets the requirement. */ protected function getLesserEqualVersion($milestone) { if (version_compare($this->version->getVersion(), $milestone, '<=')) { return $this->version->getVersion(); } $data = array_reverse($this->releases->getAll()); foreach ($data as $version => $date) { if (version_compare($version, $milestone, '<=')) { return $version; } } throw new RuntimeException('Could not satisfy version requirements.'); }