← all change records
#3486506 Drupal supports several additional hook implementations using #Hook
Generated 2026-06-03 14:00 UTC
Matching rules (11)
- to: 'core:hook:module_preinstall'
- to: 'core:hook:module_preuninstall'
- to: 'core:hook:modules_installed'
- to: 'core:hook:modules_uninstalled'
- to: 'core:hook:cache_flush'
- to: 'core:hook:module_preinstall'
- to: 'core:hook:module_preuninstall'
- to: 'core:hook:modules_installed'
- to: 'core:hook:modules_uninstalled'
- to: 'core:hook:cache_flush'
- kind: attribute_predicate
to:
arg: 0
string_in:
- module_preinstall
- module_preuninstall
- modules_installed
- modules_uninstalled
- cache_flush
attribute_fqn: \Drupal\Core\Hook\Attribute\Hook
Affected contrib projects (172)
| Project | legacy | in_flight | migrated | installs | files | adopters | |
|---|---|---|---|---|---|---|---|
| webform ↗ | 0 | 0 | 5 | 350,386 | 0 | 2 | |
| paragraphs ↗ | 0 | 0 | 2 | 259,569 | 0 | 2 | |
| entity ↗ | 0 | 0 | 4 | 228,112 | 0 | 1 | |
| simple_sitemap ↗ | 0 | 0 | 2 | 141,271 | 0 | 2 | |
| smtp ↗ | 0 | 0 | 2 | 136,532 | 0 | 1 | |
| xmlsitemap ↗ | 0 | 0 | 4 | 134,508 | 0 | 1 | |
| scheduler ↗ | 0 | 0 | 4 | 103,900 | 0 | 1 | |
| features ↗ | 0 | 0 | 2 | 82,780 | 0 | 1 | |
| extlink ↗ | 0 | 0 | 2 | 70,613 | 0 | 1 | |
| entity_usage ↗ | 0 | 0 | 2 | 63,731 | 0 | 1 | |
| file_mdm ↗ | 0 | 0 | 2 | 60,672 | 0 | 1 | |
| ultimate_cron ↗ | 0 | 0 | 2 | 60,139 | 0 | 1 | |
| asset_injector ↗ | 0 | 0 | 2 | 44,555 | 0 | 1 | |
| scheduler_content_moderation_integration ↗ | 0 | 0 | 2 | 31,797 | 0 | 1 | |
| filefield_paths ↗ | 0 | 0 | 2 | 30,954 | 0 | 1 | |
| default_content ↗ | 0 | 0 | 2 | 28,301 | 0 | 1 | |
| checklistapi ↗ | 0 | 0 | 2 | 25,423 | 0 | 1 | |
| rebuild_cache_access ↗ | 0 | 0 | 2 | 24,315 | 0 | 1 | |
| acquia_connector ↗ | 0 | 0 | 4 | 20,992 | 0 | 1 | |
| trash ↗ | 0 | 0 | 3 | 19,430 | 0 | 2 | |
| contact_storage ↗ | 0 | 0 | 2 | 19,037 | 0 | 1 | |
| security_review ↗ | 0 | 0 | 4 | 18,552 | 0 | 1 | |
| group ↗ | 0 | 0 | 6 | 18,054 | 0 | 2 | |
| ldap ↗ | 0 | 0 | 2 | 16,100 | 0 | 1 | |
| ai ↗ | 0 | 0 | 16 | 15,430 | 0 | 1 | |
| search_api_attachments ↗ | 0 | 0 | 2 | 15,025 | 0 | 1 | |
| acsf ↗ | 0 | 0 | 2 | 12,118 | 0 | 1 | |
| tmgmt ↗ | 0 | 0 | 2 | 11,594 | 0 | 2 | |
| tour ↗ | 0 | 0 | 2 | 11,041 | 0 | 1 | |
| responsive_menu ↗ | 0 | 0 | 2 | 10,259 | 0 | 1 | |
| modeler_api ↗ | 0 | 0 | 6 | 9,511 | 0 | 1 | |
| acquia_search ↗ | 0 | 0 | 2 | 9,092 | 0 | 1 | |
| automatic_updates ↗ | 0 | 0 | 4 | 7,925 | 0 | 2 | |
| css_editor ↗ | 0 | 0 | 2 | 7,844 | 0 | 1 | |
| navigation_extra_tools ↗ | 0 | 0 | 3 | 7,616 | 0 | 2 | |
| config_rewrite ↗ | 0 | 0 | 2 | 7,146 | 0 | 1 | |
| image_field_caption ↗ | 0 | 0 | 3 | 5,962 | 0 | 2 | |
| canvas ↗ | 0 | 0 | 7 | 5,503 | 0 | 2 | |
| lightning_media ↗ | 0 | 0 | 2 | 5,464 | 0 | 2 | |
| styled_google_map ↗ | 0 | 0 | 4 | 4,708 | 0 | 1 | |
| commerce_stripe ↗ | 0 | 0 | 6 | 4,066 | 0 | 1 | |
| keycloak ↗ | 0 | 0 | 2 | 3,908 | 0 | 1 | |
| events_log_track ↗ | 0 | 0 | 5 | 3,679 | 0 | 2 | |
| simple_cron ↗ | 0 | 0 | 4 | 3,340 | 0 | 1 | |
| change_pwd_page ↗ | 0 | 0 | 4 | 3,255 | 0 | 1 | |
| modal_page ↗ | 0 | 0 | 4 | 3,102 | 0 | 1 | |
| config_sync ↗ | 0 | 0 | 2 | 3,087 | 0 | 1 | |
| easy_encryption ↗ | 0 | 0 | 3 | 2,856 | 0 | 1 | |
| layout_builder_st ↗ | 0 | 0 | 3 | 2,837 | 0 | 2 | |
| scss_compiler ↗ | 0 | 0 | 2 | 2,776 | 0 | 1 | |
| monitoring ↗ | 0 | 0 | 2 | 2,197 | 0 | 2 | |
| rrssb ↗ | 0 | 0 | 2 | 2,023 | 0 | 1 | |
| graphql_compose ↗ | 0 | 0 | 10 | 1,982 | 0 | 1 | |
| total_control ↗ | 0 | 0 | 2 | 1,936 | 0 | 1 | |
| dxpr_builder ↗ | 0 | 0 | 20 | 1,911 | 0 | 1 | |
| acquia_cms_common ↗ | 0 | 0 | 2 | 1,861 | 0 | 1 | |
| update_helper ↗ | 0 | 0 | 2 | 1,809 | 0 | 1 | |
| acquia_cms_image ↗ | 0 | 0 | 2 | 1,802 | 0 | 1 | |
| textimage ↗ | 0 | 0 | 5 | 1,764 | 0 | 2 | |
| form_mode_manager ↗ | 0 | 0 | 4 | 1,676 | 0 | 1 | |
| acquia_cms_page ↗ | 0 | 0 | 4 | 1,586 | 0 | 2 | |
| frontend_editing ↗ | 0 | 0 | 4 | 1,578 | 0 | 1 | |
| bibcite ↗ | 0 | 0 | 4 | 1,497 | 0 | 1 | |
| acquia_cms_site_studio ↗ | 0 | 0 | 4 | 1,458 | 0 | 2 | |
| ipless ↗ | 0 | 0 | 2 | 1,319 | 0 | 1 | |
| acquia_cms_person ↗ | 0 | 0 | 2 | 1,305 | 0 | 1 | |
| acquia_cms_article ↗ | 0 | 0 | 2 | 1,252 | 0 | 1 | |
| acquia_cms_event ↗ | 0 | 0 | 2 | 1,193 | 0 | 1 | |
| swagger_ui_formatter ↗ | 0 | 0 | 2 | 931 | 0 | 1 | |
| tome ↗ | 0 | 0 | 2 | 864 | 0 | 1 | |
| acquia_cms_tour ↗ | 0 | 0 | 4 | 857 | 0 | 1 | |
| acquia_contenthub ↗ | 0 | 0 | 6 | 785 | 0 | 1 | |
| brevo ↗ | 0 | 0 | 2 | 752 | 0 | 1 | |
| synhelper ↗ | 0 | 0 | 2 | 746 | 0 | 1 | |
| config_selector ↗ | 0 | 0 | 8 | 682 | 0 | 1 | |
| tca ↗ | 0 | 0 | 4 | 652 | 0 | 1 | |
| tmgmt_extension_suit ↗ | 0 | 0 | 2 | 642 | 0 | 1 | |
| drimage ↗ | 0 | 0 | 4 | 602 | 0 | 1 | |
| content_templates ↗ | 0 | 0 | 2 | 597 | 0 | 1 | |
| country_path ↗ | 0 | 0 | 2 | 550 | 0 | 1 | |
| ableplayer ↗ | 0 | 0 | 2 | 495 | 0 | 1 | |
| webhooks ↗ | 0 | 0 | 5 | 495 | 0 | 1 | |
| elasticsearch_helper ↗ | 0 | 0 | 4 | 474 | 0 | 1 | |
| localgov_core ↗ | 0 | 0 | 4 | 468 | 0 | 3 | |
| varbase_seo ↗ | 0 | 0 | 6 | 458 | 0 | 1 | |
| commerce_store_domain ↗ | 0 | 0 | 4 | 449 | 0 | 1 | |
| acb ↗ | 0 | 0 | 2 | 437 | 0 | 1 | |
| varbase_core ↗ | 0 | 0 | 6 | 433 | 0 | 2 | |
| countdown ↗ | 0 | 0 | 2 | 432 | 0 | 1 | |
| localgov_workflows ↗ | 0 | 0 | 2 | 407 | 0 | 1 | |
| ex_icons ↗ | 0 | 0 | 4 | 400 | 0 | 1 | |
| canvas_full_html ↗ | 0 | 0 | 2 | 399 | 0 | 1 | |
| prometheus_exporter ↗ | 0 | 0 | 5 | 385 | 0 | 1 | |
| localgov_directories ↗ | 0 | 0 | 2 | 381 | 0 | 1 | |
| civicccookiecontrol ↗ | 0 | 0 | 4 | 376 | 0 | 1 | |
| localgov_guides ↗ | 0 | 0 | 2 | 375 | 0 | 1 | |
| localgov_alert_banner ↗ | 0 | 0 | 2 | 350 | 0 | 1 | |
| localgov_events ↗ | 0 | 0 | 2 | 344 | 0 | 1 | |
| media_folders ↗ | 0 | 0 | 2 | 338 | 0 | 1 | |
| localgov_step_by_step ↗ | 0 | 0 | 2 | 324 | 0 | 1 | |
| sparql_entity_storage ↗ | 0 | 0 | 2 | 317 | 0 | 1 | |
| drimage_improved ↗ | 0 | 0 | 4 | 309 | 0 | 1 | |
| oidc ↗ | 0 | 0 | 2 | 284 | 0 | 1 | |
| extended_logger ↗ | 0 | 0 | 2 | 265 | 0 | 1 | |
| vault ↗ | 0 | 0 | 2 | 253 | 0 | 1 | |
| paragraphs_collection ↗ | 0 | 0 | 2 | 252 | 0 | 1 | |
| auto_alter ↗ | 0 | 0 | 2 | 247 | 0 | 2 | |
| localgov_publications ↗ | 0 | 0 | 2 | 243 | 0 | 1 | |
| schemadotorg ↗ | 0 | 0 | 8 | 243 | 0 | 4 | |
| wxt_bootstrap ↗ | 0 | 0 | 2 | 204 | 0 | 1 | |
| wisski ↗ | 0 | 0 | 2 | 193 | 0 | 1 | |
| ai_context ↗ | 0 | 0 | 3 | 180 | 0 | 2 | |
| cmrf_core ↗ | 0 | 0 | 2 | 177 | 0 | 1 | |
| acquia_cms_starter ↗ | 0 | 0 | 2 | 162 | 0 | 1 | |
| custom_elements ↗ | 0 | 0 | 2 | 155 | 0 | 1 | |
| anu_lms ↗ | 0 | 0 | 2 | 124 | 0 | 1 | |
| dropsolid_rocketship_profile ↗ | 0 | 0 | 2 | 122 | 0 | 1 | |
| localgov_demo ↗ | 0 | 0 | 2 | 119 | 0 | 1 | |
| fast_404_generator ↗ | 0 | 0 | 2 | 117 | 0 | 1 | |
| localgov_forms ↗ | 0 | 0 | 2 | 113 | 0 | 1 | |
| custom_translation_deployments ↗ | 0 | 0 | 2 | 105 | 0 | 1 | |
| lupus_decoupled ↗ | 0 | 0 | 2 | 102 | 0 | 1 | |
| hti ↗ | 0 | 0 | 2 | 91 | 0 | 1 | |
| cmrf_form_processor ↗ | 0 | 0 | 4 | 83 | 0 | 1 | |
| localgov_elections ↗ | 0 | 0 | 4 | 77 | 0 | 2 | |
| toolshed ↗ | 0 | 0 | 4 | 74 | 0 | 1 | |
| yoomoney ↗ | 0 | 0 | 4 | 74 | 0 | 1 | |
| dx_toolkit ↗ | 0 | 0 | 2 | 70 | 0 | 1 | |
| cache_flush_time ↗ | 0 | 0 | 2 | 67 | 0 | 1 | |
| gmail ↗ | 0 | 0 | 2 | 66 | 0 | 1 | |
| dfm ↗ | 0 | 0 | 2 | 65 | 0 | 1 | |
| dropfort_update ↗ | 0 | 0 | 8 | 64 | 0 | 1 | |
| generated_content ↗ | 0 | 0 | 4 | 63 | 0 | 1 | |
| logger_db ↗ | 0 | 0 | 5 | 55 | 0 | 3 | |
| openintranet_engagement ↗ | 0 | 0 | 2 | 54 | 0 | 1 | |
| permission_turbo ↗ | 0 | 0 | 4 | 53 | 0 | 1 | |
| dbxschema ↗ | 0 | 0 | 2 | 51 | 0 | 1 | |
| localgov_blogs ↗ | 0 | 0 | 2 | 50 | 0 | 1 | |
| acquia_cms_dam ↗ | 0 | 0 | 2 | 47 | 0 | 1 | |
| config_overlay ↗ | 0 | 0 | 8 | 46 | 0 | 1 | |
| crm ↗ | 0 | 0 | 3 | 46 | 0 | 1 | |
| symfony_translation ↗ | 0 | 0 | 2 | 38 | 0 | 1 | |
| varbase_demo ↗ | 0 | 0 | 4 | 38 | 0 | 1 | |
| tailwindcss_utility ↗ | 0 | 0 | 2 | 31 | 0 | 1 | |
| group_content_menu_bundles ↗ | 0 | 0 | 2 | 30 | 0 | 1 | |
| update_narf ↗ | 0 | 0 | 5 | 27 | 0 | 2 | |
| admin_ui_only ↗ | 0 | 0 | 2 | 26 | 0 | 1 | |
| domino ↗ | 0 | 0 | 4 | 22 | 0 | 1 | |
| experience_builder ↗ | 0 | 0 | 14 | 20 | 0 | 2 | |
| utilikit ↗ | 0 | 0 | 2 | 19 | 0 | 1 | |
| contacts ↗ | 0 | 0 | 2 | 18 | 0 | 2 | |
| commerce_currencies ↗ | 0 | 0 | 2 | 17 | 0 | 1 | |
| librejs ↗ | 0 | 0 | 3 | 16 | 0 | 1 | |
| mail_box_management ↗ | 0 | 0 | 2 | 15 | 0 | 1 | |
| sql_views ↗ | 0 | 0 | 4 | 15 | 0 | 1 | |
| module_usage ↗ | 0 | 0 | 4 | 14 | 0 | 1 | |
| samlauth_multi_idp ↗ | 0 | 0 | 2 | 13 | 0 | 1 | |
| vipps_mobilepay_commerce ↗ | 0 | 0 | 2 | 13 | 0 | 1 | |
| workspaces_access ↗ | 0 | 0 | 4 | 13 | 0 | 1 | |
| translation_bliss ↗ | 0 | 0 | 3 | 12 | 0 | 2 | |
| cache_pilot ↗ | 0 | 0 | 3 | 8 | 0 | 1 | |
| profile_manager ↗ | 0 | 0 | 6 | 8 | 0 | 1 | |
| r ↗ | 0 | 0 | 2 | 8 | 0 | 1 | |
| digital_signage_framework ↗ | 0 | 0 | 4 | 6 | 0 | 1 | |
| aero_weather ↗ | 0 | 0 | 2 | 4 | 0 | 1 | |
| murmurations ↗ | 0 | 0 | 2 | 3 | 0 | 1 | |
| commerce_baselinker ↗ | 0 | 0 | 2 | 2 | 0 | 1 | |
| improvements ↗ | 0 | 0 | 4 | 2 | 0 | 1 | |
| clip ↗ | 0 | 0 | 2 | 1 | 0 | 1 | |
| schema_metatag_ai ↗ | 0 | 0 | 4 | 1 | 0 | 1 | |
| smallads ↗ | 0 | 0 | 2 | 1 | 0 | 1 | |
| scrape_to_field ↗ | 0 | 0 | 2 | 0 | 0 | 1 |