From e43060eb72f4ded821a1d08296b43050005e64e1 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Fri, 6 May 2011 19:54:47 +0200 Subject: [PATCH] Added exceptions and fixed CS of the ZipDownloader --- src/Composer/Downloader/ZipDownloader.php | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/Composer/Downloader/ZipDownloader.php b/src/Composer/Downloader/ZipDownloader.php index fc4cd98b2..3b155a1a8 100644 --- a/src/Composer/Downloader/ZipDownloader.php +++ b/src/Composer/Downloader/ZipDownloader.php @@ -21,32 +21,36 @@ class ZipDownloader { public function download(PackageInterface $package, $path) { + if (!class_exists('ZipArchive')) { + throw new \UnexpectedValueException('You need the zip extension enabled to use the ZipDownloader'); + } + $tmpName = tempnam(sys_get_temp_dir(), ''); $this->downloadFile($package->getSourceUrl(), $tmpName); if (!file_exists($tmpName)) { - throw new \UnexpectedValueException($tmpName.' could not be created.'); + throw new \UnexpectedValueException($path.' could not be saved into '.$tmpName.', make sure the' + .' directory is writable and you have internet connectivity.'); } $zipArchive = new ZipArchive(); - if($zipArchive->open($tmpName) !== TRUE) { + if (true === ($retval = $zipArchive->open($tmpName))) { $zipArchive->extractTo($path.'/'.$package->getName()); $zipArchive->close(); - } - else { - throw new \UnexpectedValueException($tmpName.'is not a valid zip archive'); + } else { + throw new \UnexpectedValueException($tmpName.' is not a valid zip archive, got error code '.$retval); } } protected function downloadFile ($url, $path) { - $file = fopen ($url, "rb"); + $file = fopen($url, "rb"); if ($file) { - $newf = fopen ($path, "wb"); + $newf = fopen($path, "wb"); if ($newf) { - while(!feof($file)) { - fwrite($newf, fread($file, 1024 * 8 ), 1024 * 8 ); + while (!feof($file)) { + fwrite($newf, fread($file, 1024 * 8), 1024 * 8); } } }