← all change records
#3551652 Hooks in themes can now be OOP
Generated 2026-06-03 14:00 UTC
Matching rules (4)
- kind: attribute_predicate
to:
arg: 0
string_in:
- css_alter
- js_alter
- js_settings_alter
- library_info_alter
- form_alter
- form_BASE_FORM_ID_alter
- form_FORM_ID_alter
- element_info_alter
- page_attachments_alter
- theme_registry_alter
- theme_suggestions_alter
- theme_suggestions_HOOK_alter
- views_ui_display_tab_alter
- views_ui_display_top_alter
- plugin_filter_layout_alter
- plugin_filter_layout__layout_alter
- views_pre_render
- views_post_render
- theme
- preprocess
- preprocess_HOOK
attribute_fqn: \Drupal\Core\Hook\Attribute\Hook
- from: '\Drupal\Core\DrupalKernel::getModulesParameter'
- from: '\Drupal\Core\DrupalKernel::getModuleFileNames'
- from: '\Drupal\Core\DrupalKernel::getModuleNamespacesPsr4'
Affected contrib projects (171)
| Project | legacy | in_flight | migrated | installs | files | adopters | |
|---|---|---|---|---|---|---|---|
| token ↗ | 0 | 0 | 1 | 541,281 | 0 | 0 | |
| metatag ↗ | 0 | 0 | 1 | 351,572 | 0 | 0 | |
| webform ↗ | 0 | 0 | 1 | 350,386 | 0 | 0 | |
| search_api ↗ | 0 | 0 | 1 | 170,654 | 0 | 0 | |
| honeypot ↗ | 0 | 0 | 1 | 144,212 | 0 | 0 | |
| rules ↗ | 0 | 0 | 1 | 84,276 | 0 | 0 | |
| smart_trim ↗ | 0 | 0 | 1 | 64,100 | 0 | 0 | |
| seven ↗ | 0 | 0 | 1 | 60,784 | 0 | 0 | |
| search_api_solr ↗ | 0 | 0 | 1 | 58,481 | 0 | 0 | |
| geolocation ↗ | 0 | 0 | 1 | 45,454 | 0 | 0 | |
| components ↗ | 0 | 0 | 1 | 45,149 | 0 | 0 | |
| commerce ↗ | 0 | 0 | 1 | 38,572 | 0 | 0 | |
| image_effects ↗ | 0 | 0 | 1 | 34,905 | 0 | 0 | |
| charts ↗ | 0 | 0 | 2 | 19,619 | 0 | 0 | |
| trash ↗ | 0 | 0 | 1 | 19,430 | 0 | 0 | |
| office_hours ↗ | 0 | 0 | 1 | 19,176 | 0 | 0 | |
| group ↗ | 0 | 0 | 2 | 18,054 | 0 | 0 | |
| eca ↗ | 0 | 0 | 2 | 17,304 | 0 | 0 | |
| commerce_shipping ↗ | 0 | 0 | 1 | 16,132 | 0 | 0 | |
| ai ↗ | 0 | 0 | 3 | 15,430 | 0 | 0 | |
| content_lock ↗ | 0 | 0 | 1 | 15,420 | 0 | 0 | |
| site_verify ↗ | 0 | 0 | 1 | 14,928 | 0 | 0 | |
| domain ↗ | 0 | 0 | 1 | 11,889 | 0 | 0 | |
| project_browser ↗ | 0 | 0 | 1 | 10,327 | 0 | 0 | |
| modeler_api ↗ | 0 | 0 | 1 | 9,511 | 0 | 0 | |
| dashboard ↗ | 0 | 0 | 1 | 9,418 | 0 | 0 | |
| genpass ↗ | 0 | 0 | 2 | 9,244 | 0 | 0 | |
| layout_builder_iframe_modal ↗ | 0 | 0 | 1 | 8,171 | 0 | 0 | |
| name ↗ | 0 | 0 | 1 | 8,123 | 0 | 0 | |
| book ↗ | 0 | 0 | 1 | 8,033 | 0 | 0 | |
| navigation_extra_tools ↗ | 0 | 0 | 1 | 7,616 | 0 | 0 | |
| moderation_dashboard ↗ | 0 | 0 | 1 | 7,180 | 0 | 0 | |
| poll ↗ | 0 | 0 | 1 | 6,885 | 0 | 0 | |
| advancedqueue ↗ | 0 | 0 | 1 | 6,266 | 0 | 0 | |
| image_field_caption ↗ | 0 | 0 | 1 | 5,962 | 0 | 0 | |
| canvas ↗ | 0 | 0 | 1 | 5,503 | 0 | 0 | |
| workflow ↗ | 0 | 0 | 2 | 5,395 | 0 | 0 | |
| securelogin ↗ | 0 | 0 | 1 | 5,219 | 0 | 0 | |
| toc_js ↗ | 0 | 0 | 1 | 4,471 | 0 | 0 | |
| menu_item_fields ↗ | 0 | 0 | 1 | 4,440 | 0 | 0 | |
| events_log_track ↗ | 0 | 0 | 1 | 3,679 | 0 | 0 | |
| ai_dashboard ↗ | 0 | 0 | 1 | 3,631 | 0 | 0 | |
| mercury ↗ | 0 | 0 | 1 | 3,439 | 0 | 0 | |
| iubenda_integration ↗ | 0 | 0 | 1 | 3,366 | 0 | 0 | |
| byte_theme ↗ | 0 | 0 | 1 | 3,169 | 0 | 0 | |
| registration ↗ | 0 | 0 | 1 | 3,036 | 0 | 0 | |
| privatemsg ↗ | 0 | 0 | 1 | 2,714 | 0 | 0 | |
| custom_field ↗ | 0 | 0 | 1 | 2,601 | 0 | 0 | |
| dark_mode_toggle ↗ | 0 | 0 | 1 | 2,147 | 0 | 0 | |
| civicrm_entity ↗ | 0 | 0 | 1 | 1,972 | 0 | 0 | |
| commerce_cart_redirection ↗ | 0 | 0 | 1 | 1,964 | 0 | 0 | |
| domain_path ↗ | 0 | 0 | 2 | 1,813 | 0 | 0 | |
| textimage ↗ | 0 | 0 | 1 | 1,764 | 0 | 0 | |
| frontend_editing ↗ | 0 | 0 | 1 | 1,578 | 0 | 0 | |
| helper ↗ | 0 | 0 | 1 | 1,522 | 0 | 0 | |
| jquery_downgrade ↗ | 0 | 0 | 1 | 1,499 | 0 | 0 | |
| menu_migration ↗ | 0 | 0 | 2 | 1,498 | 0 | 0 | |
| mercury_editor ↗ | 0 | 0 | 1 | 1,406 | 0 | 0 | |
| media_entity_link ↗ | 0 | 0 | 1 | 1,358 | 0 | 0 | |
| layout_builder_ids ↗ | 0 | 0 | 1 | 1,355 | 0 | 0 | |
| radioactivity ↗ | 0 | 0 | 1 | 1,120 | 0 | 0 | |
| hms_field ↗ | 0 | 0 | 1 | 1,079 | 0 | 0 | |
| barcodes ↗ | 0 | 0 | 1 | 1,016 | 0 | 0 | |
| prevnext ↗ | 0 | 0 | 1 | 1,013 | 0 | 0 | |
| quote ↗ | 0 | 0 | 2 | 827 | 0 | 0 | |
| views_attach_library ↗ | 0 | 0 | 1 | 649 | 0 | 0 | |
| browsersync ↗ | 0 | 0 | 1 | 580 | 0 | 0 | |
| ui_suite_bootstrap ↗ | 0 | 0 | 1 | 457 | 0 | 0 | |
| entity_access_password ↗ | 0 | 0 | 1 | 436 | 0 | 0 | |
| canvas_full_html ↗ | 0 | 0 | 1 | 399 | 0 | 0 | |
| block_content_suggestions ↗ | 0 | 0 | 1 | 344 | 0 | 0 | |
| log ↗ | 0 | 0 | 1 | 333 | 0 | 0 | |
| workbench_tabs ↗ | 0 | 0 | 1 | 310 | 0 | 0 | |
| term_glossary ↗ | 0 | 0 | 1 | 305 | 0 | 0 | |
| wse ↗ | 0 | 0 | 1 | 267 | 0 | 0 | |
| suggestion ↗ | 0 | 0 | 1 | 257 | 0 | 0 | |
| layout_builder_widget ↗ | 0 | 0 | 1 | 256 | 0 | 0 | |
| bootstrap5_admin ↗ | 0 | 0 | 1 | 248 | 0 | 0 | |
| usfedgov_google_analytics ↗ | 0 | 0 | 1 | 225 | 0 | 0 | |
| varbase_components ↗ | 0 | 0 | 1 | 220 | 0 | 0 | |
| field_widget_actions ↗ | 0 | 0 | 1 | 213 | 0 | 0 | |
| admin_toolbar_messages ↗ | 0 | 0 | 1 | 200 | 0 | 0 | |
| pager ↗ | 0 | 0 | 1 | 184 | 0 | 0 | |
| pathauto_entity_parent ↗ | 0 | 0 | 1 | 155 | 0 | 0 | |
| document_loader ↗ | 0 | 0 | 1 | 147 | 0 | 0 | |
| swiffy_slider ↗ | 0 | 0 | 1 | 127 | 0 | 0 | |
| fileslog ↗ | 0 | 0 | 1 | 123 | 0 | 0 | |
| search_api_typesense ↗ | 0 | 0 | 1 | 108 | 0 | 0 | |
| canvas_extjs ↗ | 0 | 0 | 1 | 102 | 0 | 0 | |
| viewer ↗ | 0 | 0 | 1 | 101 | 0 | 0 | |
| lms ↗ | 0 | 0 | 1 | 99 | 0 | 0 | |
| tripal ↗ | 0 | 0 | 1 | 94 | 0 | 0 | |
| facets_range_input ↗ | 0 | 0 | 1 | 84 | 0 | 0 | |
| gleap ↗ | 0 | 0 | 1 | 78 | 0 | 0 | |
| domain_extras ↗ | 0 | 0 | 1 | 71 | 0 | 0 | |
| change_labels ↗ | 0 | 0 | 1 | 70 | 0 | 0 | |
| contextual_image_widget_crop ↗ | 0 | 0 | 1 | 70 | 0 | 0 | |
| webform_intl_tel_national_mode ↗ | 0 | 0 | 1 | 68 | 0 | 0 | |
| qr_generator ↗ | 0 | 0 | 1 | 60 | 0 | 0 | |
| datetime_reset ↗ | 0 | 0 | 1 | 54 | 0 | 0 | |
| entity_vdts ↗ | 0 | 0 | 1 | 49 | 0 | 0 | |
| drulma_companion ↗ | 0 | 0 | 1 | 48 | 0 | 0 | |
| crm ↗ | 0 | 0 | 1 | 46 | 0 | 0 | |
| config_warning ↗ | 0 | 0 | 1 | 45 | 0 | 0 | |
| paragraph_usage_dashboard ↗ | 0 | 0 | 1 | 45 | 0 | 0 | |
| token_browser ↗ | 0 | 0 | 1 | 44 | 0 | 0 | |
| dropdown_pager ↗ | 0 | 0 | 1 | 39 | 0 | 0 | |
| advanced_header_field ↗ | 0 | 0 | 1 | 38 | 0 | 0 | |
| media_opengraph ↗ | 0 | 0 | 1 | 37 | 0 | 0 | |
| ip_info ↗ | 0 | 0 | 1 | 36 | 0 | 0 | |
| paragraph_group ↗ | 0 | 0 | 2 | 36 | 0 | 0 | |
| trace_mail_log ↗ | 0 | 0 | 1 | 35 | 0 | 0 | |
| form_layout ↗ | 0 | 0 | 1 | 33 | 0 | 0 | |
| media_remote_hls ↗ | 0 | 0 | 1 | 30 | 0 | 0 | |
| phoney ↗ | 0 | 0 | 1 | 30 | 0 | 0 | |
| ajax_cart_update ↗ | 0 | 0 | 2 | 28 | 0 | 0 | |
| exclusive_boolean ↗ | 0 | 0 | 1 | 28 | 0 | 0 | |
| group_media_bulk_upload ↗ | 0 | 0 | 1 | 28 | 0 | 0 | |
| unicode_soft_hyphens ↗ | 0 | 0 | 1 | 28 | 0 | 0 | |
| patternkit ↗ | 0 | 0 | 1 | 27 | 0 | 0 | |
| views_themeable_text_area ↗ | 0 | 0 | 1 | 27 | 0 | 0 | |
| content_filter ↗ | 0 | 0 | 1 | 26 | 0 | 0 | |
| soundcite ↗ | 0 | 0 | 1 | 26 | 0 | 0 | |
| pwa_firebase ↗ | 0 | 0 | 1 | 23 | 0 | 0 | |
| flowdrop ↗ | 0 | 0 | 3 | 21 | 0 | 0 | |
| hal_publications ↗ | 0 | 0 | 1 | 21 | 0 | 0 | |
| vocabulary_clone ↗ | 0 | 0 | 1 | 21 | 0 | 0 | |
| experience_builder ↗ | 0 | 0 | 2 | 20 | 0 | 0 | |
| postoffice ↗ | 0 | 0 | 1 | 20 | 0 | 0 | |
| work_time ↗ | 0 | 0 | 1 | 19 | 0 | 0 | |
| select_a11y_ng ↗ | 0 | 0 | 1 | 18 | 0 | 0 | |
| login_monitor ↗ | 0 | 0 | 1 | 17 | 0 | 0 | |
| reading_progress_bar ↗ | 0 | 0 | 1 | 17 | 0 | 0 | |
| librejs ↗ | 0 | 0 | 1 | 16 | 0 | 0 | |
| page_analytics ↗ | 0 | 0 | 1 | 15 | 0 | 0 | |
| swagger_php ↗ | 0 | 0 | 1 | 15 | 0 | 0 | |
| media_scroller ↗ | 0 | 0 | 1 | 13 | 0 | 0 | |
| require_revision ↗ | 0 | 0 | 1 | 13 | 0 | 0 | |
| workspaces_access ↗ | 0 | 0 | 1 | 13 | 0 | 0 | |
| rocketship_theme_starter ↗ | 0 | 0 | 1 | 12 | 0 | 0 | |
| translation_bliss ↗ | 0 | 0 | 1 | 12 | 0 | 0 | |
| coveo ↗ | 0 | 0 | 2 | 11 | 0 | 0 | |
| ai_webform_guard ↗ | 0 | 0 | 1 | 10 | 0 | 0 | |
| local_taskbar ↗ | 0 | 0 | 1 | 10 | 0 | 0 | |
| link_filebrowser ↗ | 0 | 0 | 1 | 9 | 0 | 0 | |
| public_key_credential_source ↗ | 0 | 0 | 1 | 9 | 0 | 0 | |
| cache_pilot ↗ | 0 | 0 | 1 | 8 | 0 | 0 | |
| copyright_notice ↗ | 0 | 0 | 1 | 8 | 0 | 0 | |
| steam_login ↗ | 0 | 0 | 1 | 7 | 0 | 0 | |
| text_clarity_checker ↗ | 0 | 0 | 1 | 7 | 0 | 0 | |
| livre ↗ | 0 | 0 | 1 | 6 | 0 | 0 | |
| htmx_extras ↗ | 0 | 0 | 1 | 5 | 0 | 0 | |
| rcr ↗ | 0 | 0 | 2 | 5 | 0 | 0 | |
| recaptcha_preloader ↗ | 0 | 0 | 1 | 5 | 0 | 0 | |
| paragraphs_gantt ↗ | 0 | 0 | 1 | 4 | 0 | 0 | |
| user_email_preview ↗ | 0 | 0 | 1 | 4 | 0 | 0 | |
| views_lazy_renderer ↗ | 0 | 0 | 2 | 4 | 0 | 0 | |
| dark_mode_user ↗ | 0 | 0 | 1 | 2 | 0 | 0 | |
| diboo_core ↗ | 0 | 0 | 1 | 2 | 0 | 0 | |
| group_inline_entity_form ↗ | 0 | 0 | 1 | 2 | 0 | 0 | |
| tlsrpt ↗ | 0 | 0 | 1 | 2 | 0 | 0 | |
| users_account_modal ↗ | 0 | 0 | 1 | 2 | 0 | 0 | |
| webform_error_field ↗ | 0 | 0 | 1 | 2 | 0 | 0 | |
| altcolor ↗ | 0 | 0 | 1 | 1 | 0 | 0 | |
| basic_ads ↗ | 0 | 0 | 1 | 1 | 0 | 0 | |
| config_guardian ↗ | 0 | 0 | 1 | 1 | 0 | 0 | |
| rendered_entity_list_formatter ↗ | 0 | 0 | 1 | 1 | 0 | 0 | |
| satis_hub ↗ | 0 | 0 | 1 | 1 | 0 | 0 | |
| plotly ↗ | 0 | 0 | 1 | 0 | 0 | 0 | |
| straker_translate ↗ | 0 | 0 | 1 | 0 | 0 | 0 | |
| views_conditional_text ↗ | 0 | 0 | 1 | 0 | 0 | 0 |