public function knownReleases(Provider $provider) { $url = $provider->buildKnownReleasesUrl(); if (extension_loaded('curl')) { $curlVersionInfo = curl_version(); $curlOptions = array(CURLOPT_USERAGENT => 'curl/' . $curlVersionInfo['version']); $downloader = new CurlDownloader(); /* FIXME $console = Console::getInstance(); if (! $console->options->{'no-progress'}) { $downloader->setProgressHandler(new ProgressBar); } */ if ($this->options) { if ($proxy = $this->options->{'http-proxy'}) { $downloader->setProxy($proxy); } if ($proxyAuth = $this->options->{'http-proxy-auth'}) { $downloader->setProxyAuth($proxyAuth); } } $info = $downloader->request($url, array(), $curlOptions); } else { $proxyOptions = Config::getProxyConfig(); if ($proxyOptions) { $context = stream_context_create(array($proxyOptions)); $info = file_get_contents($url, false, $context); } else { $info = file_get_contents($url); } } return $provider->parseKnownReleasesResponse($info); }
private static function downloadReleaseListFromOfficialSite($version, OptionResult $options = null) { if (!extension_loaded('openssl')) { throw new Exception('openssl extension not found, to download releases file you need openssl.'); } $max = $options && $options->old ? 1000 : 100; $url = "https://secure.php.net/releases/index.php?json&version={$version}&max={$max}"; if (extension_loaded('curl')) { $downloader = new CurlDownloader(); $downloader->setProgressHandler(new ProgressBar()); if (!Console::getInstance()->options->{'no-progress'}) { $downloader->setProgressHandler(new ProgressBar()); } if ($options) { $seconds = $options->{'connect-timeout'}; if ($seconds || ($seconds = getenv('CONNECT_TIMEOUT'))) { $downloader->setConnectionTimeout($seconds); } if ($proxy = $options->{'http-proxy'}) { $downloader->setProxy($proxy); } if ($proxyAuth = $options->{'http-proxy-auth'}) { $downloader->setProxyAuth($proxyAuth); } } $json = $downloader->request($url); } else { $proxyOptions = Config::getProxyConfig(); if ($proxyOptions) { $context = steam_context_create($proxyOptions); $json = file_get_contents($url, false, $context); } else { $json = file_get_contents($url); } } $obj = json_decode($json, true); return $obj; }