Рейтинг:1

Добавить простой объект конфигурации в качестве кешируемой зависимости?

флаг in

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

Я попытался передать свой объект конфигурации в конструктор как таковой:

$breadcrumb->addCacheableDependency($this->config);

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

  публичная функция __construct(
    админконтекст $admin_context,
    AliasManagerInterface $alias_manager,
    EntityTypeManagerInterface $entity_type_manager,
    ConfigFactoryInterface $config_factory
  ) {
    $this->adminContext = $admin_context;
    $this->aliasManager = $alias_manager;
    $this->entityTypeManager = $entity_type_manager;
    $this->config = $config_factory->get('mymodule.settings');
  }
Рейтинг:0
флаг cn

Чтобы ответить на вопрос. Да, это правильный путь.

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

функция mymodule_preprocess_block__system_breadcrumb_block(&$variables) {
  var_dump($variables['content']['#cache']);
}

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

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

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