public static function buildReleaseListFromOfficialSite(OptionResult $options = null)
{
$obj = array_merge(self::downloadReleaseListFromOfficialSite(7, $options), self::downloadReleaseListFromOfficialSite(5, $options));
$releaseVersions = array();
foreach ($obj as $k => $v) {
if (preg_match('/^(\\d+)\\.(\\d+)\\./', $k, $matches)) {
list($o, $major, $minor) = $matches;
$release = array('version' => $k);
if (isset($v['announcement']['English'])) {
$release['announcement'] = 'http://php.net' . $v['announcement']['English'];
}
if (isset($v['date'])) {
$release['date'] = $v['date'];
}
foreach ($v['source'] as $source) {
if (isset($source['filename']) && preg_match('/\\.tar\\.bz2$/', $source['filename'])) {
$release['filename'] = $source['filename'];
$release['name'] = $source['name'];
if (isset($source['md5'])) {
$release['md5'] = $source['md5'];
}
if (isset($source['date'])) {
$release['date'] = $source['date'];
}
}
}
$release['museum'] = isset($v['museum']) && $v['museum'];
$releaseVersions["{$major}.{$minor}"][$k] = $release;
}
}
foreach ($releaseVersions as $key => &$versions) {
uksort($releaseVersions[$key], function ($a, $b) {
return version_compare($b, $a);
});
}
return $releaseVersions;
}