Рейтинг:3

Как аннулировать кеш черного списка?

флаг cn

Мне нужно аннулировать кеш списка блоков каждый раз, когда создается новый объект конфигурации, потому что у меня есть производный блок для динамической обработки одного блока для каждого из моих объектов конфигурации. Я попытался аннулировать черный список с помощью следующего кода

Drupal\Core\Cache\Cache::invalidateTags(['block_list']);

Но когда я захожу посмотреть доступные блоки, я не могу увидеть свой новый блок, пока не почищу все кеши на сайте.

Обычно, когда мне нужно аннулировать списки сущностей из кеша, я использую ENTITY-NAME_list тег, чтобы сделать это, но на этот раз не работает, может быть, я что-то пропустил?

Рейтинг:3
флаг cn

Очистка кеша делает недействительным не только кеш рендеринга, но и множество других кешей. Например, все кеши обнаружения менеджера плагинов.

В этом случае вам, вероятно, нужно аннулировать кеш менеджера блочных плагинов:

\Drupal::service('plugin.manager.block')->clearCachedDefinitions();
флаг cn
Хороший ответ, буду иметь в виду на будущее.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.