Loading core/lib/Drupal/Core/Config/ConfigImporter.php +1 −1 Original line number Diff line number Diff line Loading @@ -698,7 +698,7 @@ protected function processMissingContent(&$context) { $missing_content = $sandbox['missing_content']['data']; } if (!empty($missing_content)) { $event = new MissingContentEvent($missing_content); $event = new MissingContentEvent($missing_content, $this); // Fire an event to allow listeners to create the missing content. $this->eventDispatcher->dispatch($event, ConfigEvents::IMPORT_MISSING_CONTENT); $sandbox['missing_content']['data'] = $event->getMissingContent(); Loading core/lib/Drupal/Core/Config/Importer/MissingContentEvent.php +7 −3 Original line number Diff line number Diff line Loading @@ -2,14 +2,15 @@ namespace Drupal\Core\Config\Importer; use Drupal\Component\EventDispatcher\Event; use Drupal\Core\Config\ConfigImporter; use Drupal\Core\Config\ConfigImporterEvent; /** * Wraps a configuration event for event listeners. * * @see \Drupal\Core\Config\ConfigEvents::IMPORT_MISSING_CONTENT */ class MissingContentEvent extends Event { class MissingContentEvent extends ConfigImporterEvent { /** * A list of missing content dependencies. Loading @@ -23,8 +24,11 @@ class MissingContentEvent extends Event { * * @param array $missing_content * Missing content information. * @param \Drupal\Core\Config\ConfigImporter $config_importer * The config importer that triggered this event. */ public function __construct(array $missing_content) { public function __construct(array $missing_content, ConfigImporter $config_importer) { parent::__construct($config_importer); $this->missingContent = $missing_content; } Loading core/modules/config/tests/config_import_test/src/EventSubscriber.php +4 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ use Drupal\Core\Config\ConfigCrudEvent; use Drupal\Core\Config\ConfigEvents; use Drupal\Core\Config\ConfigImporter; use Drupal\Core\Config\ConfigImporterEvent; use Drupal\Core\Config\Importer\MissingContentEvent; use Drupal\Core\State\StateInterface; Loading Loading @@ -72,6 +73,9 @@ public function onConfigImporterMissingContentOne(MissingContentEvent $event) { * The missing content event. */ public function onConfigImporterMissingContentTwo(MissingContentEvent $event) { if (!$event->getConfigImporter() instanceof ConfigImporter) { throw new \LogicException('\Drupal\Core\Config\Importer\MissingContentEvent is missing the ConfigImporter'); } if ($this->state->get('config_import_test.config_import_missing_content', FALSE) && $this->state->get('config_import_test.config_import_missing_content_two', FALSE) === FALSE) { $missing = $event->getMissingContent(); $uuid = key($missing); Loading Loading
core/lib/Drupal/Core/Config/ConfigImporter.php +1 −1 Original line number Diff line number Diff line Loading @@ -698,7 +698,7 @@ protected function processMissingContent(&$context) { $missing_content = $sandbox['missing_content']['data']; } if (!empty($missing_content)) { $event = new MissingContentEvent($missing_content); $event = new MissingContentEvent($missing_content, $this); // Fire an event to allow listeners to create the missing content. $this->eventDispatcher->dispatch($event, ConfigEvents::IMPORT_MISSING_CONTENT); $sandbox['missing_content']['data'] = $event->getMissingContent(); Loading
core/lib/Drupal/Core/Config/Importer/MissingContentEvent.php +7 −3 Original line number Diff line number Diff line Loading @@ -2,14 +2,15 @@ namespace Drupal\Core\Config\Importer; use Drupal\Component\EventDispatcher\Event; use Drupal\Core\Config\ConfigImporter; use Drupal\Core\Config\ConfigImporterEvent; /** * Wraps a configuration event for event listeners. * * @see \Drupal\Core\Config\ConfigEvents::IMPORT_MISSING_CONTENT */ class MissingContentEvent extends Event { class MissingContentEvent extends ConfigImporterEvent { /** * A list of missing content dependencies. Loading @@ -23,8 +24,11 @@ class MissingContentEvent extends Event { * * @param array $missing_content * Missing content information. * @param \Drupal\Core\Config\ConfigImporter $config_importer * The config importer that triggered this event. */ public function __construct(array $missing_content) { public function __construct(array $missing_content, ConfigImporter $config_importer) { parent::__construct($config_importer); $this->missingContent = $missing_content; } Loading
core/modules/config/tests/config_import_test/src/EventSubscriber.php +4 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ use Drupal\Core\Config\ConfigCrudEvent; use Drupal\Core\Config\ConfigEvents; use Drupal\Core\Config\ConfigImporter; use Drupal\Core\Config\ConfigImporterEvent; use Drupal\Core\Config\Importer\MissingContentEvent; use Drupal\Core\State\StateInterface; Loading Loading @@ -72,6 +73,9 @@ public function onConfigImporterMissingContentOne(MissingContentEvent $event) { * The missing content event. */ public function onConfigImporterMissingContentTwo(MissingContentEvent $event) { if (!$event->getConfigImporter() instanceof ConfigImporter) { throw new \LogicException('\Drupal\Core\Config\Importer\MissingContentEvent is missing the ConfigImporter'); } if ($this->state->get('config_import_test.config_import_missing_content', FALSE) && $this->state->get('config_import_test.config_import_missing_content_two', FALSE) === FALSE) { $missing = $event->getMissingContent(); $uuid = key($missing); Loading