Loading modules/core_event_dispatcher/core_event_dispatcher.module +32 −45 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ use Drupal\core_event_dispatcher\Event\Block\BlockBuildAlterEvent; use Drupal\core_event_dispatcher\Event\Block\BlockViewAlterEvent; use Drupal\core_event_dispatcher\Event\Core\CacheFlushEvent; use Drupal\core_event_dispatcher\Event\Core\ConfigImportStepsAlterEvent; use Drupal\core_event_dispatcher\Event\Core\ConfigSchemaInfoAlterEvent; use Drupal\core_event_dispatcher\Event\Core\CountriesAlterEvent; use Drupal\core_event_dispatcher\Event\Core\CronEvent; use Drupal\core_event_dispatcher\Event\Core\DataTypeInfoAlterEvent; Loading Loading @@ -77,7 +78,6 @@ use Drupal\core_event_dispatcher\Event\Language\LanguageSwitchLinksAlterEvent; // Core. // @todo hook_mail() // @todo hook_config_schema_info_alter() // @todo hook_validation_constraint_alter() // // Entity. Loading Loading @@ -176,8 +176,7 @@ function core_event_dispatcher_block_alter(&$definitions) { function core_event_dispatcher_cron() { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new CronEvent(); $manager->register($event); $manager->register(new CronEvent()); } /** Loading @@ -186,8 +185,7 @@ function core_event_dispatcher_cron() { function core_event_dispatcher_data_type_info_alter(&$dataTypes) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new DataTypeInfoAlterEvent($dataTypes); $manager->register($event); $manager->register(new DataTypeInfoAlterEvent($dataTypes)); } /** Loading @@ -196,8 +194,7 @@ function core_event_dispatcher_data_type_info_alter(&$dataTypes) { function core_event_dispatcher_queue_info_alter(&$queues) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new QueueInfoAlterEvent($queues); $manager->register($event); $manager->register(new QueueInfoAlterEvent($queues)); } /** Loading @@ -206,8 +203,7 @@ function core_event_dispatcher_queue_info_alter(&$queues) { function core_event_dispatcher_mail_alter(&$message) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new MailAlterEvent($message); $manager->register($event); $manager->register(new MailAlterEvent($message)); } /** Loading @@ -216,8 +212,7 @@ function core_event_dispatcher_mail_alter(&$message) { function core_event_dispatcher_mail_backend_info_alter(&$info) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new MailBackendInfoAlterEvent($info); $manager->register($event); $manager->register(new MailBackendInfoAlterEvent($info)); } /** Loading @@ -226,8 +221,7 @@ function core_event_dispatcher_mail_backend_info_alter(&$info) { function core_event_dispatcher_countries_alter(&$countries) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new CountriesAlterEvent($countries); $manager->register($event); $manager->register(new CountriesAlterEvent($countries)); } /** Loading @@ -236,8 +230,7 @@ function core_event_dispatcher_countries_alter(&$countries) { function core_event_dispatcher_display_variant_plugin_alter(array &$definitions) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new DisplayVariantPluginAlterEvent($definitions); $manager->register($event); $manager->register(new DisplayVariantPluginAlterEvent($definitions)); } /** Loading @@ -246,8 +239,7 @@ function core_event_dispatcher_display_variant_plugin_alter(array &$definitions) function core_event_dispatcher_layout_alter(array &$definitions) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new LayoutAlterEvent($definitions); $manager->register($event); $manager->register(new LayoutAlterEvent($definitions)); } /** Loading @@ -256,8 +248,7 @@ function core_event_dispatcher_layout_alter(array &$definitions) { function core_event_dispatcher_cache_flush() { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new CacheFlushEvent(); $manager->register($event); $manager->register(new CacheFlushEvent()); } /** Loading @@ -266,8 +257,7 @@ function core_event_dispatcher_cache_flush() { function core_event_dispatcher_rebuild() { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new RebuildEvent(); $manager->register($event); $manager->register(new RebuildEvent()); } /** Loading @@ -276,8 +266,16 @@ function core_event_dispatcher_rebuild() { function core_event_dispatcher_config_import_steps_alter(array &$syncSteps, ConfigImporter $configImporter) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new ConfigImportStepsAlterEvent($syncSteps, $configImporter); $manager->register($event); $manager->register(new ConfigImportStepsAlterEvent($syncSteps, $configImporter)); } /** * Implements hook_config_schema_info_alter(). */ function core_event_dispatcher_config_schema_info_alter(array &$definitions) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $manager->register(new ConfigSchemaInfoAlterEvent($definitions)); } /** Loading @@ -302,8 +300,7 @@ function core_event_dispatcher_entity_access(EntityInterface $entity, string $op function core_event_dispatcher_entity_type_build(array &$entityTypes) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new EntityTypeBuildEvent($entityTypes); $manager->register($event); $manager->register(new EntityTypeBuildEvent($entityTypes)); } /** Loading @@ -314,8 +311,7 @@ function core_event_dispatcher_entity_type_build(array &$entityTypes) { function core_event_dispatcher_entity_type_alter(array &$entityTypes) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new EntityTypeAlterEvent($entityTypes); $manager->register($event); $manager->register(new EntityTypeAlterEvent($entityTypes)); } /** Loading Loading @@ -484,8 +480,7 @@ function core_event_dispatcher_entity_base_field_info(EntityTypeInterface $entit function core_event_dispatcher_entity_base_field_info_alter(array &$fields, EntityTypeInterface $entityType) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new EntityBaseFieldInfoAlterEvent($fields, $entityType); $manager->register($event); $manager->register(new EntityBaseFieldInfoAlterEvent($fields, $entityType)); } /** Loading @@ -496,8 +491,7 @@ function core_event_dispatcher_entity_base_field_info_alter(array &$fields, Enti function core_event_dispatcher_entity_bundle_field_info_alter(array &$fields, EntityTypeInterface $entityType, string $bundle) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new EntityBundleFieldInfoAlterEvent($fields, $entityType, $bundle); $manager->register($event); $manager->register(new EntityBundleFieldInfoAlterEvent($fields, $entityType, $bundle)); } /** Loading Loading @@ -562,8 +556,7 @@ function core_event_dispatcher_entity_extra_field_info() { function core_event_dispatcher_entity_extra_field_info_alter(array &$info) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new EntityExtraFieldInfoAlterEvent($info); $manager->register($event); $manager->register(new EntityExtraFieldInfoAlterEvent($info)); } /** Loading Loading @@ -592,8 +585,7 @@ function core_event_dispatcher_form_alter(array &$form, FormStateInterface $form function core_event_dispatcher_language_switch_links_alter(array &$links, string $type, Url $path) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new LanguageSwitchLinksAlterEvent($links, $type, $path); $manager->register($event); $manager->register(new LanguageSwitchLinksAlterEvent($links, $type, $path)); } /** Loading Loading @@ -627,8 +619,7 @@ function core_event_dispatcher_themes_installed(array $themeList) { function core_event_dispatcher_js_alter(array &$javascript, AttachedAssetsInterface $assets) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new JsAlterEvent($javascript, $assets); $manager->register($event); $manager->register(new JsAlterEvent($javascript, $assets)); } /** Loading @@ -639,8 +630,7 @@ function core_event_dispatcher_js_alter(array &$javascript, AttachedAssetsInterf function core_event_dispatcher_library_info_alter(array &$libraries, string $extension) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new LibraryInfoAlterEvent($libraries, $extension); $manager->register($event); $manager->register(new LibraryInfoAlterEvent($libraries, $extension)); } /** Loading @@ -651,8 +641,7 @@ function core_event_dispatcher_library_info_alter(array &$libraries, string $ext function core_event_dispatcher_page_attachments(array &$attachments) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new PageAttachmentsEvent($attachments); $manager->register($event); $manager->register(new PageAttachmentsEvent($attachments)); } /** Loading @@ -663,8 +652,7 @@ function core_event_dispatcher_page_attachments(array &$attachments) { function core_event_dispatcher_page_top(array &$pageTop) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new PageTopEvent($pageTop); $manager->register($event); $manager->register(new PageTopEvent($pageTop)); } /** Loading @@ -675,8 +663,7 @@ function core_event_dispatcher_page_top(array &$pageTop) { function core_event_dispatcher_page_bottom(array &$pageBottom) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new PageBottomEvent($pageBottom); $manager->register($event); $manager->register(new PageBottomEvent($pageBottom)); } /** Loading modules/core_event_dispatcher/src/Event/Core/ConfigSchemaInfoAlterEvent.php 0 → 100644 +20 −0 Original line number Diff line number Diff line <?php namespace Drupal\core_event_dispatcher\Event\Core; use Drupal\hook_event_dispatcher\Event\PluginDefinitionAlterEventBase; use Drupal\hook_event_dispatcher\HookEventDispatcherInterface; /** * Class ConfigSchemaInfoAlterEvent. */ class ConfigSchemaInfoAlterEvent extends PluginDefinitionAlterEventBase { /** * {@inheritdoc} */ public function getDispatcherType(): string { return HookEventDispatcherInterface::CONFIG_SCHEMA_INFO_ALTER; } } modules/core_event_dispatcher/tests/src/Kernel/Core/ConfigSchemaInfoAlterEventTest.php 0 → 100644 +59 −0 Original line number Diff line number Diff line <?php namespace Drupal\Tests\core_event_dispatcher\Kernel\Core; use Drupal\config_translation\FormElement\Textarea; use Drupal\core_event_dispatcher\Event\Core\ConfigSchemaInfoAlterEvent; use Drupal\hook_event_dispatcher\HookEventDispatcherInterface; use Drupal\KernelTests\KernelTestBase; use Drupal\Tests\hook_event_dispatcher\Kernel\ListenerTrait; /** * Class ConfigSchemaInfoAlterEventTest. * * @group hook_event_dispatcher * @group core_event_dispatcher * * @see core_event_dispatcher_config_schema_info_alter() */ class ConfigSchemaInfoAlterEventTest extends KernelTestBase { use ListenerTrait; /** * {@inheritdoc} */ protected static $modules = [ 'hook_event_dispatcher', 'core_event_dispatcher', ]; /** * Test ConfigSchemaInfoAlterEvent. * * @throws \Exception */ public function testConfigSchemaInfoAlterEvent(): void { $this->listen(HookEventDispatcherInterface::CONFIG_SCHEMA_INFO_ALTER, 'onConfigSchemaInfoAlter'); $typedConfigManager = $this->container->get('config.typed'); $definition = $typedConfigManager->getDefinition('text'); $this->assertArrayHasKey('form_element_class', $definition); $this->assertEquals(Textarea::class, $definition['form_element_class']); } /** * Callback for ConfigSchemaInfoAlterEvent. * * @param \Drupal\core_event_dispatcher\Event\Core\ConfigSchemaInfoAlterEvent $event * The event. */ public function onConfigSchemaInfoAlter(ConfigSchemaInfoAlterEvent $event): void { $this->assertTrue($event->hasDefinition('text')); $definition = $event->getDefinition('text'); $this->assertArrayNotHasKey('form_element_class', $definition); $definition['form_element_class'] = Textarea::class; $event->setDefinition('text', $definition); } } src/HookEventDispatcherInterface.php +12 −0 Original line number Diff line number Diff line Loading @@ -1007,6 +1007,18 @@ interface HookEventDispatcherInterface { */ public const CONFIG_IMPORT_STEPS_ALTER = self::PREFIX . 'config.import_steps_alter'; /** * Alter config typed data definitions. * * @Event * * @see core_event_dispatcher_config_schema_info_alter() * @see hook_config_schema_info_alter() * * @var string */ public const CONFIG_SCHEMA_INFO_ALTER = self::PREFIX . 'config.schema.info_alter'; // LANGUAGE EVENTS. /** * Alter the links generated to switch languages. Loading Loading
modules/core_event_dispatcher/core_event_dispatcher.module +32 −45 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ use Drupal\core_event_dispatcher\Event\Block\BlockBuildAlterEvent; use Drupal\core_event_dispatcher\Event\Block\BlockViewAlterEvent; use Drupal\core_event_dispatcher\Event\Core\CacheFlushEvent; use Drupal\core_event_dispatcher\Event\Core\ConfigImportStepsAlterEvent; use Drupal\core_event_dispatcher\Event\Core\ConfigSchemaInfoAlterEvent; use Drupal\core_event_dispatcher\Event\Core\CountriesAlterEvent; use Drupal\core_event_dispatcher\Event\Core\CronEvent; use Drupal\core_event_dispatcher\Event\Core\DataTypeInfoAlterEvent; Loading Loading @@ -77,7 +78,6 @@ use Drupal\core_event_dispatcher\Event\Language\LanguageSwitchLinksAlterEvent; // Core. // @todo hook_mail() // @todo hook_config_schema_info_alter() // @todo hook_validation_constraint_alter() // // Entity. Loading Loading @@ -176,8 +176,7 @@ function core_event_dispatcher_block_alter(&$definitions) { function core_event_dispatcher_cron() { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new CronEvent(); $manager->register($event); $manager->register(new CronEvent()); } /** Loading @@ -186,8 +185,7 @@ function core_event_dispatcher_cron() { function core_event_dispatcher_data_type_info_alter(&$dataTypes) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new DataTypeInfoAlterEvent($dataTypes); $manager->register($event); $manager->register(new DataTypeInfoAlterEvent($dataTypes)); } /** Loading @@ -196,8 +194,7 @@ function core_event_dispatcher_data_type_info_alter(&$dataTypes) { function core_event_dispatcher_queue_info_alter(&$queues) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new QueueInfoAlterEvent($queues); $manager->register($event); $manager->register(new QueueInfoAlterEvent($queues)); } /** Loading @@ -206,8 +203,7 @@ function core_event_dispatcher_queue_info_alter(&$queues) { function core_event_dispatcher_mail_alter(&$message) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new MailAlterEvent($message); $manager->register($event); $manager->register(new MailAlterEvent($message)); } /** Loading @@ -216,8 +212,7 @@ function core_event_dispatcher_mail_alter(&$message) { function core_event_dispatcher_mail_backend_info_alter(&$info) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new MailBackendInfoAlterEvent($info); $manager->register($event); $manager->register(new MailBackendInfoAlterEvent($info)); } /** Loading @@ -226,8 +221,7 @@ function core_event_dispatcher_mail_backend_info_alter(&$info) { function core_event_dispatcher_countries_alter(&$countries) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new CountriesAlterEvent($countries); $manager->register($event); $manager->register(new CountriesAlterEvent($countries)); } /** Loading @@ -236,8 +230,7 @@ function core_event_dispatcher_countries_alter(&$countries) { function core_event_dispatcher_display_variant_plugin_alter(array &$definitions) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new DisplayVariantPluginAlterEvent($definitions); $manager->register($event); $manager->register(new DisplayVariantPluginAlterEvent($definitions)); } /** Loading @@ -246,8 +239,7 @@ function core_event_dispatcher_display_variant_plugin_alter(array &$definitions) function core_event_dispatcher_layout_alter(array &$definitions) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new LayoutAlterEvent($definitions); $manager->register($event); $manager->register(new LayoutAlterEvent($definitions)); } /** Loading @@ -256,8 +248,7 @@ function core_event_dispatcher_layout_alter(array &$definitions) { function core_event_dispatcher_cache_flush() { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new CacheFlushEvent(); $manager->register($event); $manager->register(new CacheFlushEvent()); } /** Loading @@ -266,8 +257,7 @@ function core_event_dispatcher_cache_flush() { function core_event_dispatcher_rebuild() { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new RebuildEvent(); $manager->register($event); $manager->register(new RebuildEvent()); } /** Loading @@ -276,8 +266,16 @@ function core_event_dispatcher_rebuild() { function core_event_dispatcher_config_import_steps_alter(array &$syncSteps, ConfigImporter $configImporter) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new ConfigImportStepsAlterEvent($syncSteps, $configImporter); $manager->register($event); $manager->register(new ConfigImportStepsAlterEvent($syncSteps, $configImporter)); } /** * Implements hook_config_schema_info_alter(). */ function core_event_dispatcher_config_schema_info_alter(array &$definitions) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $manager->register(new ConfigSchemaInfoAlterEvent($definitions)); } /** Loading @@ -302,8 +300,7 @@ function core_event_dispatcher_entity_access(EntityInterface $entity, string $op function core_event_dispatcher_entity_type_build(array &$entityTypes) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new EntityTypeBuildEvent($entityTypes); $manager->register($event); $manager->register(new EntityTypeBuildEvent($entityTypes)); } /** Loading @@ -314,8 +311,7 @@ function core_event_dispatcher_entity_type_build(array &$entityTypes) { function core_event_dispatcher_entity_type_alter(array &$entityTypes) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new EntityTypeAlterEvent($entityTypes); $manager->register($event); $manager->register(new EntityTypeAlterEvent($entityTypes)); } /** Loading Loading @@ -484,8 +480,7 @@ function core_event_dispatcher_entity_base_field_info(EntityTypeInterface $entit function core_event_dispatcher_entity_base_field_info_alter(array &$fields, EntityTypeInterface $entityType) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new EntityBaseFieldInfoAlterEvent($fields, $entityType); $manager->register($event); $manager->register(new EntityBaseFieldInfoAlterEvent($fields, $entityType)); } /** Loading @@ -496,8 +491,7 @@ function core_event_dispatcher_entity_base_field_info_alter(array &$fields, Enti function core_event_dispatcher_entity_bundle_field_info_alter(array &$fields, EntityTypeInterface $entityType, string $bundle) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new EntityBundleFieldInfoAlterEvent($fields, $entityType, $bundle); $manager->register($event); $manager->register(new EntityBundleFieldInfoAlterEvent($fields, $entityType, $bundle)); } /** Loading Loading @@ -562,8 +556,7 @@ function core_event_dispatcher_entity_extra_field_info() { function core_event_dispatcher_entity_extra_field_info_alter(array &$info) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new EntityExtraFieldInfoAlterEvent($info); $manager->register($event); $manager->register(new EntityExtraFieldInfoAlterEvent($info)); } /** Loading Loading @@ -592,8 +585,7 @@ function core_event_dispatcher_form_alter(array &$form, FormStateInterface $form function core_event_dispatcher_language_switch_links_alter(array &$links, string $type, Url $path) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new LanguageSwitchLinksAlterEvent($links, $type, $path); $manager->register($event); $manager->register(new LanguageSwitchLinksAlterEvent($links, $type, $path)); } /** Loading Loading @@ -627,8 +619,7 @@ function core_event_dispatcher_themes_installed(array $themeList) { function core_event_dispatcher_js_alter(array &$javascript, AttachedAssetsInterface $assets) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new JsAlterEvent($javascript, $assets); $manager->register($event); $manager->register(new JsAlterEvent($javascript, $assets)); } /** Loading @@ -639,8 +630,7 @@ function core_event_dispatcher_js_alter(array &$javascript, AttachedAssetsInterf function core_event_dispatcher_library_info_alter(array &$libraries, string $extension) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new LibraryInfoAlterEvent($libraries, $extension); $manager->register($event); $manager->register(new LibraryInfoAlterEvent($libraries, $extension)); } /** Loading @@ -651,8 +641,7 @@ function core_event_dispatcher_library_info_alter(array &$libraries, string $ext function core_event_dispatcher_page_attachments(array &$attachments) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new PageAttachmentsEvent($attachments); $manager->register($event); $manager->register(new PageAttachmentsEvent($attachments)); } /** Loading @@ -663,8 +652,7 @@ function core_event_dispatcher_page_attachments(array &$attachments) { function core_event_dispatcher_page_top(array &$pageTop) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new PageTopEvent($pageTop); $manager->register($event); $manager->register(new PageTopEvent($pageTop)); } /** Loading @@ -675,8 +663,7 @@ function core_event_dispatcher_page_top(array &$pageTop) { function core_event_dispatcher_page_bottom(array &$pageBottom) { /** @var \Drupal\hook_event_dispatcher\Manager\HookEventDispatcherManagerInterface $manager */ $manager = Drupal::service('hook_event_dispatcher.manager'); $event = new PageBottomEvent($pageBottom); $manager->register($event); $manager->register(new PageBottomEvent($pageBottom)); } /** Loading
modules/core_event_dispatcher/src/Event/Core/ConfigSchemaInfoAlterEvent.php 0 → 100644 +20 −0 Original line number Diff line number Diff line <?php namespace Drupal\core_event_dispatcher\Event\Core; use Drupal\hook_event_dispatcher\Event\PluginDefinitionAlterEventBase; use Drupal\hook_event_dispatcher\HookEventDispatcherInterface; /** * Class ConfigSchemaInfoAlterEvent. */ class ConfigSchemaInfoAlterEvent extends PluginDefinitionAlterEventBase { /** * {@inheritdoc} */ public function getDispatcherType(): string { return HookEventDispatcherInterface::CONFIG_SCHEMA_INFO_ALTER; } }
modules/core_event_dispatcher/tests/src/Kernel/Core/ConfigSchemaInfoAlterEventTest.php 0 → 100644 +59 −0 Original line number Diff line number Diff line <?php namespace Drupal\Tests\core_event_dispatcher\Kernel\Core; use Drupal\config_translation\FormElement\Textarea; use Drupal\core_event_dispatcher\Event\Core\ConfigSchemaInfoAlterEvent; use Drupal\hook_event_dispatcher\HookEventDispatcherInterface; use Drupal\KernelTests\KernelTestBase; use Drupal\Tests\hook_event_dispatcher\Kernel\ListenerTrait; /** * Class ConfigSchemaInfoAlterEventTest. * * @group hook_event_dispatcher * @group core_event_dispatcher * * @see core_event_dispatcher_config_schema_info_alter() */ class ConfigSchemaInfoAlterEventTest extends KernelTestBase { use ListenerTrait; /** * {@inheritdoc} */ protected static $modules = [ 'hook_event_dispatcher', 'core_event_dispatcher', ]; /** * Test ConfigSchemaInfoAlterEvent. * * @throws \Exception */ public function testConfigSchemaInfoAlterEvent(): void { $this->listen(HookEventDispatcherInterface::CONFIG_SCHEMA_INFO_ALTER, 'onConfigSchemaInfoAlter'); $typedConfigManager = $this->container->get('config.typed'); $definition = $typedConfigManager->getDefinition('text'); $this->assertArrayHasKey('form_element_class', $definition); $this->assertEquals(Textarea::class, $definition['form_element_class']); } /** * Callback for ConfigSchemaInfoAlterEvent. * * @param \Drupal\core_event_dispatcher\Event\Core\ConfigSchemaInfoAlterEvent $event * The event. */ public function onConfigSchemaInfoAlter(ConfigSchemaInfoAlterEvent $event): void { $this->assertTrue($event->hasDefinition('text')); $definition = $event->getDefinition('text'); $this->assertArrayNotHasKey('form_element_class', $definition); $definition['form_element_class'] = Textarea::class; $event->setDefinition('text', $definition); } }
src/HookEventDispatcherInterface.php +12 −0 Original line number Diff line number Diff line Loading @@ -1007,6 +1007,18 @@ interface HookEventDispatcherInterface { */ public const CONFIG_IMPORT_STEPS_ALTER = self::PREFIX . 'config.import_steps_alter'; /** * Alter config typed data definitions. * * @Event * * @see core_event_dispatcher_config_schema_info_alter() * @see hook_config_schema_info_alter() * * @var string */ public const CONFIG_SCHEMA_INFO_ALTER = self::PREFIX . 'config.schema.info_alter'; // LANGUAGE EVENTS. /** * Alter the links generated to switch languages. Loading