я должен переопределить кэш страниц
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);
вернуть $ответ;
}