From a1a3e29f520749718a617527e00a4270bb4af7a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A4nz=20Friederes?= Date: Wed, 16 Sep 2020 11:39:34 +0200 Subject: [PATCH] Fix using inside anonymous function --- src/Composer/Downloader/FileDownloader.php | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/Composer/Downloader/FileDownloader.php b/src/Composer/Downloader/FileDownloader.php index 403a4ac08..3729b1f95 100644 --- a/src/Composer/Downloader/FileDownloader.php +++ b/src/Composer/Downloader/FileDownloader.php @@ -106,6 +106,11 @@ class FileDownloader implements DownloaderInterface, ChangeReportInterface throw new \InvalidArgumentException('The given package is missing url information'); } + $generateCacheKey = function (PackageInterface $package, $key) { + $cacheKey = sha1($key); + return $package->getName().'/'.$cacheKey.'.'.$package->getDistType(); + }; + $retries = 3; $urls = $package->getDistUrls(); foreach ($urls as $index => $url) { @@ -117,7 +122,7 @@ class FileDownloader implements DownloaderInterface, ChangeReportInterface // from different packages, which would potentially allow a given package // in a third party repo to pre-populate the cache for the same package in // packagist for example. - 'cacheKey' => $this->getCacheKey($package, $processedUrl) + 'cacheKey' => $generateCacheKey($package, $processedUrl) ); } @@ -134,16 +139,16 @@ class FileDownloader implements DownloaderInterface, ChangeReportInterface $accept = null; $reject = null; - $download = function () use ($io, $output, $httpDownloader, $cache, $eventDispatcher, $package, $fileName, &$urls, &$accept, &$reject) { + $download = function () use ($io, $output, $httpDownloader, $cache, $generateCacheKey, $eventDispatcher, $package, $fileName, &$urls, &$accept, &$reject) { $url = reset($urls); if ($eventDispatcher) { $preFileDownloadEvent = new PreFileDownloadEvent(PluginEvents::PRE_FILE_DOWNLOAD, $httpDownloader, $url['processed'], 'package', $package); $eventDispatcher->dispatch($preFileDownloadEvent->getName(), $preFileDownloadEvent); if ($preFileDownloadEvent->getCustomCacheKey() !== null) { - $url['cacheKey'] = $this->getCacheKey($package, $preFileDownloadEvent->getCustomCacheKey()); + $url['cacheKey'] = $generateCacheKey($package, $preFileDownloadEvent->getCustomCacheKey()); } else if ($preFileDownloadEvent->getProcessedUrl() !== $url['processed']) { - $url['cacheKey'] = $this->getCacheKey($package, $preFileDownloadEvent->getProcessedUrl()); + $url['cacheKey'] = $generateCacheKey($package, $preFileDownloadEvent->getProcessedUrl()); } $url['processed'] = $preFileDownloadEvent->getProcessedUrl(); } @@ -407,12 +412,6 @@ class FileDownloader implements DownloaderInterface, ChangeReportInterface return $url; } - private function getCacheKey(PackageInterface $package, $key) - { - $cacheKey = sha1($key); - return $package->getName().'/'.$cacheKey.'.'.$package->getDistType(); - } - /** * {@inheritDoc} * @throws \RuntimeException