Use cachetags to invalidate block definitions

Created on 26 April 2013, almost 12 years ago
Updated 23 January 2025, about 1 month ago

Currently we have this:

function menu_menu_delete(Menu $menu) {
  menu_cache_clear_all();

  // Invalidate the block cache to update menu-based derivatives.
  if (module_exists('block')) {
    drupal_container()->get('plugin.manager.block')->clearCachedDefinitions();
  }
}

Which leads to awkward requirements like in #1978244: Allow for optional dependencies β†’ .

Let's just do this instead:


<?php

use Drupal\Core\Cache\Cache;

function menu_menu_delete(Menu $menu) {
  menu_cache_clear_all();
  Cache::invalidateTags(array('block_definitions' => TRUE);
}

Note: this would require changing block manager's cache tag to block_definitions, which I think makes sense.

πŸ“Œ Task
Status

Postponed: needs info

Version

11.0 πŸ”₯

Component

block.module

Created by

πŸ‡ΊπŸ‡ΈUnited States msonnabaum

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

  • πŸ‡ΊπŸ‡ΈUnited States smustgrave

    Thank you for creating this issue to improve Drupal.

    We are working to decide if this task is still relevant to a currently supported version of Drupal. There hasn't been any discussion here for over 8 years which suggests that this has either been implemented or is no longer relevant. Your thoughts on this will allow a decision to be made.

    Since we need more information to move forward with this issue, the status is now Postponed (maintainer needs more info). If we don't receive additional information to help with the issue, it may be closed after three months.

    Thanks!

Production build 0.71.5 2024