Issue #3414993 by alexpott: Add ConfigImporter to \Drupal\Core\Config\Importer\MissingContentEvent
parent
5294815818
commit
eafa856443
|
@ -701,7 +701,7 @@ class ConfigImporter {
|
|||
$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();
|
||||
|
|
|
@ -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.
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ namespace Drupal\config_import_test;
|
|||
|
||||
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;
|
||||
|
@ -72,6 +73,9 @@ class EventSubscriber implements EventSubscriberInterface {
|
|||
* 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…
Reference in New Issue