From 7dd95a768bc1dd8c6f296ee0081f41ffa1444bbe Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Fri, 9 Apr 2021 11:00:49 +0200 Subject: [PATCH] Clean stuff up and deprecate old usages for PostFileDownloadEvent --- src/Composer/Downloader/FileDownloader.php | 2 +- src/Composer/Plugin/PluginInterface.php | 2 +- src/Composer/Plugin/PostFileDownloadEvent.php | 13 +++++++++++-- src/Composer/Repository/ComposerRepository.php | 6 +++--- .../Test/Plugin/Fixtures/plugin-v8/composer.json | 2 +- 5 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/Composer/Downloader/FileDownloader.php b/src/Composer/Downloader/FileDownloader.php index 0c84276de..238a3462b 100644 --- a/src/Composer/Downloader/FileDownloader.php +++ b/src/Composer/Downloader/FileDownloader.php @@ -192,7 +192,7 @@ class FileDownloader implements DownloaderInterface, ChangeReportInterface } if ($eventDispatcher) { - $postFileDownloadEvent = new PostFileDownloadEvent(PluginEvents::POST_FILE_DOWNLOAD, $fileName, $checksum, $url['processed'], $package); + $postFileDownloadEvent = new PostFileDownloadEvent(PluginEvents::POST_FILE_DOWNLOAD, $fileName, $checksum, $url['processed'], 'package', $package); $eventDispatcher->dispatch($postFileDownloadEvent->getName(), $postFileDownloadEvent); } diff --git a/src/Composer/Plugin/PluginInterface.php b/src/Composer/Plugin/PluginInterface.php index f18799e7b..305a784bc 100644 --- a/src/Composer/Plugin/PluginInterface.php +++ b/src/Composer/Plugin/PluginInterface.php @@ -32,7 +32,7 @@ interface PluginInterface * * @var string */ - const PLUGIN_API_VERSION = '2.0.0'; + const PLUGIN_API_VERSION = '2.1.0'; /** * Apply plugin modifications to Composer diff --git a/src/Composer/Plugin/PostFileDownloadEvent.php b/src/Composer/Plugin/PostFileDownloadEvent.php index 0ec8eddde..d08f336d6 100644 --- a/src/Composer/Plugin/PostFileDownloadEvent.php +++ b/src/Composer/Plugin/PostFileDownloadEvent.php @@ -54,11 +54,17 @@ class PostFileDownloadEvent extends Event * @param string|null $fileName The file name * @param string|null $checksum The checksum * @param string $url The processed url - * @param mixed $context Additional context for the download. * @param string $type The type (package or metadata). + * @param mixed $context Additional context for the download. */ - public function __construct($name, $fileName, $checksum, $url, $context = null, $type = 'package') + public function __construct($name, $fileName, $checksum, $url, $type, $context = null) { + if ($context === null && $type instanceof PackageInterface) { + $context = $type; + $type = 'package'; + trigger_error('PostFileDownloadEvent::__construct should receive a $type=package and the package object in $context since Composer 2.1.', E_USER_DEPRECATED); + } + parent::__construct($name); $this->fileName = $fileName; $this->checksum = $checksum; @@ -118,10 +124,13 @@ class PostFileDownloadEvent extends Event * If this download is of type metadata, null is returned. * * @return \Composer\Package\PackageInterface|null The package. + * @deprecated Use getContext instead */ public function getPackage() { + trigger_error('PostFileDownloadEvent::getPackage is deprecated since Composer 2.1, use getContext instead.', E_USER_DEPRECATED); $context = $this->getContext(); + return $context instanceof PackageInterface ? $context : null; } diff --git a/src/Composer/Repository/ComposerRepository.php b/src/Composer/Repository/ComposerRepository.php index 3554d5656..2449526cf 100644 --- a/src/Composer/Repository/ComposerRepository.php +++ b/src/Composer/Repository/ComposerRepository.php @@ -1112,7 +1112,7 @@ class ComposerRepository extends ArrayRepository implements ConfigurableReposito } if ($this->eventDispatcher) { - $postFileDownloadEvent = new PostFileDownloadEvent(PluginEvents::POST_FILE_DOWNLOAD, null, $sha256, $filename, $response, 'metadata'); + $postFileDownloadEvent = new PostFileDownloadEvent(PluginEvents::POST_FILE_DOWNLOAD, null, $sha256, $filename, 'metadata', $response); $this->eventDispatcher->dispatch($postFileDownloadEvent->getName(), $postFileDownloadEvent); } @@ -1195,7 +1195,7 @@ class ComposerRepository extends ArrayRepository implements ConfigurableReposito } if ($this->eventDispatcher) { - $postFileDownloadEvent = new PostFileDownloadEvent(PluginEvents::POST_FILE_DOWNLOAD, null, null, $filename, $response, 'metadata'); + $postFileDownloadEvent = new PostFileDownloadEvent(PluginEvents::POST_FILE_DOWNLOAD, null, null, $filename, 'metadata', $response); $this->eventDispatcher->dispatch($postFileDownloadEvent->getName(), $postFileDownloadEvent); } @@ -1288,7 +1288,7 @@ class ComposerRepository extends ArrayRepository implements ConfigurableReposito } if ($eventDispatcher) { - $postFileDownloadEvent = new PostFileDownloadEvent(PluginEvents::POST_FILE_DOWNLOAD, null, null, $url, $response, 'metadata'); + $postFileDownloadEvent = new PostFileDownloadEvent(PluginEvents::POST_FILE_DOWNLOAD, null, null, $url, 'metadata', $response); $eventDispatcher->dispatch($postFileDownloadEvent->getName(), $postFileDownloadEvent); } diff --git a/tests/Composer/Test/Plugin/Fixtures/plugin-v8/composer.json b/tests/Composer/Test/Plugin/Fixtures/plugin-v8/composer.json index aa44b5a3d..c2a347a51 100644 --- a/tests/Composer/Test/Plugin/Fixtures/plugin-v8/composer.json +++ b/tests/Composer/Test/Plugin/Fixtures/plugin-v8/composer.json @@ -9,6 +9,6 @@ ] }, "require": { - "composer-plugin-api": "2.0.0" + "composer-plugin-api": "^2.0.0" } }