1
0
Fork 0

Merge pull request #8810 from heddn/8809_expand_context_post_file_download

#8809: expand context for post file download event
pull/8836/head
Jordi Boggiano 2020-04-22 17:14:45 +02:00 committed by GitHub
commit d6a9d78309
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 4 deletions

View File

@ -141,7 +141,7 @@ class FileDownloader implements DownloaderInterface, ChangeReportInterface
->then($accept, $reject); ->then($accept, $reject);
} }
return $result->then(function ($result) use ($fileName, $checksum, $url, $eventDispatcher) { return $result->then(function ($result) use ($fileName, $checksum, $url, $package, $eventDispatcher) {
// in case of retry, the first call's Promise chain finally calls this twice at the end, // in case of retry, the first call's Promise chain finally calls this twice at the end,
// once with $result being the returned $fileName from $accept, and then once for every // once with $result being the returned $fileName from $accept, and then once for every
// failed request with a null result, which can be skipped. // failed request with a null result, which can be skipped.
@ -159,7 +159,7 @@ class FileDownloader implements DownloaderInterface, ChangeReportInterface
} }
if ($eventDispatcher) { if ($eventDispatcher) {
$postFileDownloadEvent = new PostFileDownloadEvent(PluginEvents::POST_FILE_DOWNLOAD, $fileName, $checksum, $url['processed']); $postFileDownloadEvent = new PostFileDownloadEvent(PluginEvents::POST_FILE_DOWNLOAD, $fileName, $checksum, $url['processed'], $package);
$eventDispatcher->dispatch($postFileDownloadEvent->getName(), $postFileDownloadEvent); $eventDispatcher->dispatch($postFileDownloadEvent->getName(), $postFileDownloadEvent);
} }

View File

@ -13,7 +13,7 @@
namespace Composer\Plugin; namespace Composer\Plugin;
use Composer\EventDispatcher\Event; use Composer\EventDispatcher\Event;
use Composer\Util\RemoteFilesystem; use Composer\Package\PackageInterface;
/** /**
* The post file download event. * The post file download event.
@ -38,6 +38,11 @@ class PostFileDownloadEvent extends Event
*/ */
private $url; private $url;
/**
* @var \Composer\Package\PackageInterface
*/
private $package;
/** /**
* Constructor. * Constructor.
* *
@ -45,13 +50,15 @@ class PostFileDownloadEvent extends Event
* @param string $fileName The file name * @param string $fileName The file name
* @param string|null $checksum The checksum * @param string|null $checksum The checksum
* @param string $url The processed url * @param string $url The processed url
* @param PackageInterface $package The package.
*/ */
public function __construct($name, $fileName, $checksum, $url) public function __construct($name, $fileName, $checksum, $url, PackageInterface $package)
{ {
parent::__construct($name); parent::__construct($name);
$this->fileName = $fileName; $this->fileName = $fileName;
$this->checksum = $checksum; $this->checksum = $checksum;
$this->url = $url; $this->url = $url;
$this->package = $package;
} }
/** /**
@ -82,4 +89,14 @@ class PostFileDownloadEvent extends Event
return $this->url; return $this->url;
} }
/**
* Get the package.
*
* @return \Composer\Package\PackageInterface
* The package.
*/
public function getPackage() {
return $this->package;
}
} }