← all change records
#3486506 Drupal supports several additional hook implementations using #Hook
Generated 2026-08-02 14:00 UTC
Matching rules (11)
- to:
fqn: 'core:hook:module_preinstall'
- to:
fqn: 'core:hook:module_preuninstall'
- to:
fqn: 'core:hook:modules_installed'
- to:
fqn: 'core:hook:modules_uninstalled'
- to:
fqn: 'core:hook:cache_flush'
- to:
fqn: 'core:hook:module_preinstall'
- to:
fqn: 'core:hook:module_preuninstall'
- to:
fqn: 'core:hook:modules_installed'
- to:
fqn: 'core:hook:modules_uninstalled'
- to:
fqn: 'core:hook:cache_flush'
- attribute_fqn: \Drupal\Core\Hook\Attribute\Hook
kind: attribute_predicate
to:
arg: 0
string_in:
- module_preinstall
- module_preuninstall
- modules_installed
- modules_uninstalled
- cache_flush
Affected contrib projects (172)
| Project | legacy | in_flight | migrated | installs | files | adopters | |
|---|---|---|---|---|---|---|---|
| webform ↗ | 0 | 0 | 5 | 346,817 | 0 | 2 | |
| paragraphs ↗ | 0 | 0 | 2 | 257,253 | 0 | 2 | |
| entity ↗ | 0 | 0 | 4 | 223,124 | 0 | 1 | |
| simple_sitemap ↗ | 0 | 0 | 2 | 139,929 | 0 | 2 | |
| smtp ↗ | 0 | 0 | 2 | 135,440 | 0 | 1 | |
| xmlsitemap ↗ | 0 | 0 | 4 | 130,687 | 0 | 1 | |
| scheduler ↗ | 0 | 0 | 4 | 104,873 | 0 | 1 | |
| features ↗ | 0 | 0 | 2 | 81,048 | 0 | 1 | |
| extlink ↗ | 0 | 0 | 2 | 70,972 | 0 | 1 | |
| file_mdm ↗ | 0 | 0 | 2 | 62,339 | 0 | 1 | |
| entity_usage ↗ | 0 | 0 | 2 | 61,314 | 0 | 1 | |
| ultimate_cron ↗ | 0 | 0 | 2 | 58,051 | 0 | 1 | |
| asset_injector ↗ | 0 | 0 | 2 | 45,651 | 0 | 1 | |
| scheduler_content_moderation_integration ↗ | 0 | 0 | 2 | 32,246 | 0 | 1 | |
| filefield_paths ↗ | 0 | 0 | 2 | 30,473 | 0 | 1 | |
| default_content ↗ | 0 | 0 | 2 | 28,421 | 0 | 1 | |
| checklistapi ↗ | 0 | 0 | 2 | 25,328 | 0 | 1 | |
| rebuild_cache_access ↗ | 0 | 0 | 2 | 24,060 | 0 | 1 | |
| trash ↗ | 0 | 0 | 3 | 21,110 | 0 | 2 | |
| acquia_connector ↗ | 0 | 0 | 4 | 19,815 | 0 | 1 | |
| group ↗ | 0 | 0 | 6 | 19,176 | 0 | 2 | |
| ai ↗ | 0 | 0 | 16 | 18,387 | 0 | 1 | |
| contact_storage ↗ | 0 | 0 | 2 | 17,385 | 0 | 1 | |
| security_review ↗ | 0 | 0 | 4 | 17,377 | 0 | 1 | |
| search_api_attachments ↗ | 0 | 0 | 2 | 16,345 | 0 | 1 | |
| ldap ↗ | 0 | 0 | 2 | 14,874 | 0 | 1 | |
| tour ↗ | 0 | 0 | 2 | 13,673 | 0 | 1 | |
| acsf ↗ | 0 | 0 | 2 | 13,192 | 0 | 1 | |
| tmgmt ↗ | 0 | 0 | 2 | 12,394 | 0 | 2 | |
| modeler_api ↗ | 0 | 0 | 6 | 12,149 | 0 | 1 | |
| navigation_extra_tools ↗ | 0 | 0 | 3 | 9,860 | 0 | 2 | |
| automatic_updates ↗ | 0 | 0 | 4 | 9,750 | 0 | 2 | |
| responsive_menu ↗ | 0 | 0 | 2 | 9,634 | 0 | 1 | |
| canvas ↗ | 0 | 0 | 7 | 8,549 | 0 | 2 | |
| acquia_search ↗ | 0 | 0 | 2 | 8,302 | 0 | 1 | |
| css_editor ↗ | 0 | 0 | 2 | 7,717 | 0 | 1 | |
| config_rewrite ↗ | 0 | 0 | 2 | 6,939 | 0 | 1 | |
| lightning_media ↗ | 0 | 0 | 2 | 6,275 | 0 | 2 | |
| image_field_caption ↗ | 0 | 0 | 3 | 5,675 | 0 | 2 | |
| easy_encryption ↗ | 0 | 0 | 3 | 5,292 | 0 | 1 | |
| styled_google_map ↗ | 0 | 0 | 4 | 4,453 | 0 | 1 | |
| keycloak ↗ | 0 | 0 | 2 | 4,169 | 0 | 1 | |
| commerce_stripe ↗ | 0 | 0 | 6 | 3,923 | 0 | 1 | |
| events_log_track ↗ | 0 | 0 | 5 | 3,533 | 0 | 2 | |
| simple_cron ↗ | 0 | 0 | 4 | 3,263 | 0 | 1 | |
| layout_builder_st ↗ | 0 | 0 | 3 | 3,037 | 0 | 2 | |
| config_sync ↗ | 0 | 0 | 2 | 3,013 | 0 | 1 | |
| modal_page ↗ | 0 | 0 | 4 | 2,970 | 0 | 1 | |
| change_pwd_page ↗ | 0 | 0 | 4 | 2,947 | 0 | 1 | |
| scss_compiler ↗ | 0 | 0 | 2 | 2,737 | 0 | 1 | |
| canvas_full_html ↗ | 0 | 0 | 2 | 2,363 | 0 | 1 | |
| monitoring ↗ | 0 | 0 | 2 | 2,105 | 0 | 2 | |
| update_helper ↗ | 0 | 0 | 2 | 2,069 | 0 | 1 | |
| rrssb ↗ | 0 | 0 | 2 | 1,951 | 0 | 1 | |
| acquia_cms_image ↗ | 0 | 0 | 2 | 1,937 | 0 | 1 | |
| acquia_cms_common ↗ | 0 | 0 | 2 | 1,926 | 0 | 1 | |
| total_control ↗ | 0 | 0 | 2 | 1,907 | 0 | 1 | |
| textimage ↗ | 0 | 0 | 5 | 1,759 | 0 | 2 | |
| acquia_cms_page ↗ | 0 | 0 | 4 | 1,711 | 0 | 2 | |
| graphql_compose ↗ | 0 | 0 | 10 | 1,668 | 0 | 1 | |
| bibcite ↗ | 0 | 0 | 4 | 1,655 | 0 | 1 | |
| frontend_editing ↗ | 0 | 0 | 4 | 1,572 | 0 | 1 | |
| form_mode_manager ↗ | 0 | 0 | 4 | 1,547 | 0 | 1 | |
| acquia_cms_site_studio ↗ | 0 | 0 | 4 | 1,410 | 0 | 2 | |
| acquia_cms_person ↗ | 0 | 0 | 2 | 1,391 | 0 | 1 | |
| acquia_cms_article ↗ | 0 | 0 | 2 | 1,330 | 0 | 1 | |
| tome ↗ | 0 | 0 | 2 | 1,305 | 0 | 1 | |
| ipless ↗ | 0 | 0 | 2 | 1,293 | 0 | 1 | |
| acquia_cms_event ↗ | 0 | 0 | 2 | 1,265 | 0 | 1 | |
| dxpr_builder ↗ | 0 | 0 | 20 | 1,011 | 0 | 1 | |
| acquia_cms_tour ↗ | 0 | 0 | 4 | 965 | 0 | 1 | |
| acquia_contenthub ↗ | 0 | 0 | 6 | 932 | 0 | 1 | |
| swagger_ui_formatter ↗ | 0 | 0 | 2 | 912 | 0 | 1 | |
| brevo ↗ | 0 | 0 | 2 | 743 | 0 | 1 | |
| tca ↗ | 0 | 0 | 4 | 726 | 0 | 1 | |
| config_selector ↗ | 0 | 0 | 8 | 662 | 0 | 1 | |
| content_templates ↗ | 0 | 0 | 2 | 589 | 0 | 1 | |
| country_path ↗ | 0 | 0 | 2 | 570 | 0 | 1 | |
| tmgmt_extension_suit ↗ | 0 | 0 | 2 | 552 | 0 | 1 | |
| media_folders ↗ | 0 | 0 | 2 | 522 | 0 | 1 | |
| varbase_seo ↗ | 0 | 0 | 6 | 514 | 0 | 1 | |
| varbase_core ↗ | 0 | 0 | 6 | 501 | 0 | 2 | |
| drimage ↗ | 0 | 0 | 4 | 486 | 0 | 1 | |
| webhooks ↗ | 0 | 0 | 5 | 471 | 0 | 1 | |
| localgov_core ↗ | 0 | 0 | 4 | 469 | 0 | 3 | |
| vault ↗ | 0 | 0 | 2 | 461 | 0 | 1 | |
| commerce_store_domain ↗ | 0 | 0 | 4 | 451 | 0 | 1 | |
| custom_elements ↗ | 0 | 0 | 2 | 451 | 0 | 1 | |
| schemadotorg ↗ | 0 | 0 | 8 | 450 | 0 | 4 | |
| acb ↗ | 0 | 0 | 2 | 446 | 0 | 1 | |
| countdown ↗ | 0 | 0 | 2 | 424 | 0 | 1 | |
| prometheus_exporter ↗ | 0 | 0 | 5 | 413 | 0 | 1 | |
| elasticsearch_helper ↗ | 0 | 0 | 4 | 403 | 0 | 1 | |
| ex_icons ↗ | 0 | 0 | 4 | 393 | 0 | 1 | |
| localgov_directories ↗ | 0 | 0 | 2 | 390 | 0 | 1 | |
| ableplayer ↗ | 0 | 0 | 2 | 387 | 0 | 1 | |
| localgov_guides ↗ | 0 | 0 | 2 | 385 | 0 | 1 | |
| drimage_improved ↗ | 0 | 0 | 4 | 371 | 0 | 1 | |
| localgov_workflows ↗ | 0 | 0 | 2 | 371 | 0 | 1 | |
| localgov_alert_banner ↗ | 0 | 0 | 2 | 363 | 0 | 1 | |
| localgov_step_by_step ↗ | 0 | 0 | 2 | 363 | 0 | 1 | |
| localgov_events ↗ | 0 | 0 | 2 | 359 | 0 | 1 | |
| ai_context ↗ | 0 | 0 | 3 | 340 | 0 | 2 | |
| civicccookiecontrol ↗ | 0 | 0 | 4 | 318 | 0 | 1 | |
| sparql_entity_storage ↗ | 0 | 0 | 2 | 281 | 0 | 1 | |
| wxt_bootstrap ↗ | 0 | 0 | 2 | 278 | 0 | 1 | |
| oidc ↗ | 0 | 0 | 2 | 277 | 0 | 1 | |
| localgov_publications ↗ | 0 | 0 | 2 | 260 | 0 | 1 | |
| extended_logger ↗ | 0 | 0 | 2 | 255 | 0 | 1 | |
| auto_alter ↗ | 0 | 0 | 2 | 238 | 0 | 2 | |
| lupus_decoupled ↗ | 0 | 0 | 2 | 219 | 0 | 1 | |
| paragraphs_collection ↗ | 0 | 0 | 2 | 197 | 0 | 1 | |
| acquia_cms_starter ↗ | 0 | 0 | 2 | 189 | 0 | 1 | |
| wisski ↗ | 0 | 0 | 2 | 174 | 0 | 1 | |
| cmrf_core ↗ | 0 | 0 | 2 | 166 | 0 | 1 | |
| custom_translation_deployments ↗ | 0 | 0 | 2 | 124 | 0 | 1 | |
| localgov_forms ↗ | 0 | 0 | 2 | 124 | 0 | 1 | |
| anu_lms ↗ | 0 | 0 | 2 | 122 | 0 | 1 | |
| localgov_demo ↗ | 0 | 0 | 2 | 120 | 0 | 1 | |
| fast_404_generator ↗ | 0 | 0 | 2 | 108 | 0 | 1 | |
| dropsolid_rocketship_profile ↗ | 0 | 0 | 2 | 105 | 0 | 1 | |
| dx_toolkit ↗ | 0 | 0 | 2 | 103 | 0 | 1 | |
| openintranet_engagement ↗ | 0 | 0 | 2 | 102 | 0 | 1 | |
| hti ↗ | 0 | 0 | 2 | 101 | 0 | 1 | |
| yoomoney ↗ | 0 | 0 | 4 | 90 | 0 | 1 | |
| generated_content ↗ | 0 | 0 | 4 | 84 | 0 | 1 | |
| cmrf_form_processor ↗ | 0 | 0 | 4 | 75 | 0 | 1 | |
| gmail ↗ | 0 | 0 | 2 | 74 | 0 | 1 | |
| dropfort_update ↗ | 0 | 0 | 8 | 69 | 0 | 1 | |
| dfm ↗ | 0 | 0 | 2 | 67 | 0 | 1 | |
| toolshed ↗ | 0 | 0 | 4 | 67 | 0 | 1 | |
| permission_turbo ↗ | 0 | 0 | 4 | 63 | 0 | 1 | |
| synhelper ↗ | 0 | 0 | 2 | 63 | 0 | 1 | |
| crm ↗ | 0 | 0 | 3 | 62 | 0 | 1 | |
| localgov_blogs ↗ | 0 | 0 | 2 | 55 | 0 | 1 | |
| config_overlay ↗ | 0 | 0 | 8 | 50 | 0 | 1 | |
| localgov_elections ↗ | 0 | 0 | 4 | 49 | 0 | 2 | |
| dbxschema ↗ | 0 | 0 | 2 | 47 | 0 | 1 | |
| logger_db ↗ | 0 | 0 | 5 | 45 | 0 | 3 | |
| acquia_cms_dam ↗ | 0 | 0 | 2 | 43 | 0 | 1 | |
| varbase_demo ↗ | 0 | 0 | 4 | 39 | 0 | 1 | |
| symfony_translation ↗ | 0 | 0 | 2 | 36 | 0 | 1 | |
| admin_ui_only ↗ | 0 | 0 | 2 | 35 | 0 | 1 | |
| tailwindcss_utility ↗ | 0 | 0 | 2 | 32 | 0 | 1 | |
| samlauth_multi_idp ↗ | 0 | 0 | 2 | 25 | 0 | 1 | |
| group_content_menu_bundles ↗ | 0 | 0 | 2 | 24 | 0 | 1 | |
| update_narf ↗ | 0 | 0 | 5 | 22 | 0 | 2 | |
| mail_box_management ↗ | 0 | 0 | 2 | 21 | 0 | 1 | |
| commerce_currencies ↗ | 0 | 0 | 2 | 19 | 0 | 1 | |
| module_usage ↗ | 0 | 0 | 4 | 19 | 0 | 1 | |
| domino ↗ | 0 | 0 | 4 | 17 | 0 | 1 | |
| librejs ↗ | 0 | 0 | 3 | 17 | 0 | 1 | |
| sql_views ↗ | 0 | 0 | 4 | 15 | 0 | 1 | |
| contacts ↗ | 0 | 0 | 2 | 14 | 0 | 2 | |
| workspaces_access ↗ | 0 | 0 | 4 | 13 | 0 | 1 | |
| utilikit ↗ | 0 | 0 | 2 | 12 | 0 | 1 | |
| experience_builder ↗ | 0 | 0 | 14 | 11 | 0 | 2 | |
| profile_manager ↗ | 0 | 0 | 6 | 9 | 0 | 1 | |
| cache_pilot ↗ | 0 | 0 | 3 | 8 | 0 | 1 | |
| translation_bliss ↗ | 0 | 0 | 3 | 8 | 0 | 2 | |
| schema_metatag_ai ↗ | 0 | 0 | 4 | 7 | 0 | 1 | |
| vipps_mobilepay_commerce ↗ | 0 | 0 | 2 | 7 | 0 | 1 | |
| aero_weather ↗ | 0 | 0 | 2 | 6 | 0 | 1 | |
| murmurations ↗ | 0 | 0 | 2 | 6 | 0 | 1 | |
| r ↗ | 0 | 0 | 2 | 6 | 0 | 1 | |
| cache_flush_time ↗ | 0 | 0 | 2 | 4 | 0 | 1 | |
| digital_signage_framework ↗ | 0 | 0 | 4 | 4 | 0 | 1 | |
| commerce_baselinker ↗ | 0 | 0 | 2 | 2 | 0 | 1 | |
| scrape_to_field ↗ | 0 | 0 | 2 | 2 | 0 | 1 | |
| smallads ↗ | 0 | 0 | 2 | 2 | 0 | 1 | |
| clip ↗ | 0 | 0 | 2 | 1 | 0 | 1 | |
| improvements ↗ | 0 | 0 | 4 | 1 | 0 | 1 |