public function download(Provider $provider, $version = 'stable') { $url = $provider->buildPackageDownloadUrl($version); $downloader = new Downloader\UrlDownloader($this->logger, $this->options); $basename = $provider->resolveDownloadFileName($version); $distDir = Config::getDistFileDir(); $targetFilePath = $distDir . DIRECTORY_SEPARATOR . $basename; $downloader->download($url, $targetFilePath); $info = pathinfo($basename); $currentPhpExtensionDirectory = Config::getBuildDir() . '/' . Config::getCurrentPhpName() . '/ext'; // tar -C ~/.phpbrew/build/php-5.5.8/ext -xvf ~/.phpbrew/distfiles/memcache-2.2.7.tgz $extensionDir = $currentPhpExtensionDirectory . DIRECTORY_SEPARATOR . $provider->getPackageName(); if (!file_exists($extensionDir)) { mkdir($extensionDir, 0755, true); } $this->logger->info("===> Extracting to {$currentPhpExtensionDirectory}..."); $cmds = array_merge($provider->extractPackageCommands($currentPhpExtensionDirectory, $targetFilePath), $provider->postExtractPackageCommands($currentPhpExtensionDirectory, $targetFilePath)); foreach ($cmds as $cmd) { $this->logger->debug($cmd); Utils::system($cmd); } return $extensionDir; }