я должен переопределить кэш страниц service, чтобы иметь некоторую пользовательскую логику проверки, которая будет выполняться для анонимных пользователей. Дело в том, что у меня есть домен обслуживание модуля домен.переговорщик быть введенным в кэш страниц службы, но когда я звоню в домен.переговорщик обслуживание это всегда ноль Неважно что я делаю. Я думаю, что это связано с чем-то с приоритетом. Я могу подтвердить, что переопределенная служба выполняется.
Код для переопределения Кэш страницы оказание услуг
/**
   * {@inheritdoc}
   */
  общедоступная функция изменить (ContainerBuilder $ контейнер) {
    // Переопределяет класс language_manager для проверки согласования языка домена.
    $definition = $container->getDefinition('http_middleware.page_cache');
    $definition->setClass('Drupal\hcl_login\StackMiddleware\StaticCache')->addArgument(
      новая ссылка('domain.negotiator'),
    );
  }
Переопределенная служба
/**
   * {@inheritdoc}
   */
  дескриптор публичной функции (запрос $request, $type = self::MASTER_REQUEST, $catch = TRUE): ответ {
    $domain = \Drupal::service('domain.negotiator');
    $x = $this->domainNegotiator->getActiveDomain();
    $currentDomain = \Drupal::service('entity_type.manager')->getStorage('domain')->createHostname();
    $response = parent::handle($request, $type, $catch);
    вернуть $ответ;
  }