From 9fb17ac7a64c062eea67497dec7226f48a349a6e Mon Sep 17 00:00:00 2001 From: "Theresa.Grannum" <theresa.grannum@3688861.no-reply.drupal.org> Date: Thu, 27 Jan 2022 21:24:54 +0000 Subject: [PATCH] Issue #3260662 by Theresa.Grannum: Move validation support into PreOperationStageEvent --- .../src/Event/PreOperationStageEvent.php | 26 +++++++++++++++++++ package_manager/src/Event/StageEvent.php | 26 ------------------- package_manager/src/Stage.php | 9 ++++--- 3 files changed, 32 insertions(+), 29 deletions(-) diff --git a/package_manager/src/Event/PreOperationStageEvent.php b/package_manager/src/Event/PreOperationStageEvent.php index 832677a82e..e60ef7b28c 100644 --- a/package_manager/src/Event/PreOperationStageEvent.php +++ b/package_manager/src/Event/PreOperationStageEvent.php @@ -10,6 +10,32 @@ use Drupal\package_manager\ValidationResult; */ abstract class PreOperationStageEvent extends StageEvent { + /** + * The validation results. + * + * @var \Drupal\package_manager\ValidationResult[] + */ + protected $results = []; + + /** + * Gets the validation results. + * + * @param int|null $severity + * (optional) The severity for the results to return. Should be one of the + * SystemManager::REQUIREMENT_* constants. + * + * @return \Drupal\package_manager\ValidationResult[] + * The validation results. + */ + public function getResults(?int $severity = NULL): array { + if ($severity !== NULL) { + return array_filter($this->results, function ($result) use ($severity) { + return $result->getSeverity() === $severity; + }); + } + return $this->results; + } + /** * Adds error information to the event. */ diff --git a/package_manager/src/Event/StageEvent.php b/package_manager/src/Event/StageEvent.php index 79a26a5ac3..b585eb846c 100644 --- a/package_manager/src/Event/StageEvent.php +++ b/package_manager/src/Event/StageEvent.php @@ -10,13 +10,6 @@ use Symfony\Contracts\EventDispatcher\Event; */ abstract class StageEvent extends Event { - /** - * The validation results. - * - * @var \Drupal\package_manager\ValidationResult[] - */ - protected $results = []; - /** * The stage which fired this event. * @@ -44,23 +37,4 @@ abstract class StageEvent extends Event { return $this->stage; } - /** - * Gets the validation results. - * - * @param int|null $severity - * (optional) The severity for the results to return. Should be one of the - * SystemManager::REQUIREMENT_* constants. - * - * @return \Drupal\package_manager\ValidationResult[] - * The validation results. - */ - public function getResults(?int $severity = NULL): array { - if ($severity !== NULL) { - return array_filter($this->results, function ($result) use ($severity) { - return $result->getSeverity() === $severity; - }); - } - return $this->results; - } - } diff --git a/package_manager/src/Stage.php b/package_manager/src/Stage.php index 756a45a23f..4c71210753 100644 --- a/package_manager/src/Stage.php +++ b/package_manager/src/Stage.php @@ -14,6 +14,7 @@ use Drupal\package_manager\Event\PostRequireEvent; use Drupal\package_manager\Event\PreApplyEvent; use Drupal\package_manager\Event\PreCreateEvent; use Drupal\package_manager\Event\PreDestroyEvent; +use Drupal\package_manager\Event\PreOperationStageEvent; use Drupal\package_manager\Event\PreRequireEvent; use Drupal\package_manager\Event\StageEvent; use Drupal\package_manager\Exception\StageException; @@ -341,9 +342,11 @@ class Stage { try { $this->eventDispatcher->dispatch($event); - $results = $event->getResults(); - if ($results) { - $error = new StageValidationException($results); + if ($event instanceof PreOperationStageEvent) { + $results = $event->getResults(); + if ($results) { + $error = new StageValidationException($results); + } } } catch (\Throwable $error) { -- GitLab