Trebuie să trec peste pagecache
serviciu pentru a avea o logică de validare personalizată care să fie executată pentru utilizatorii anonimi. Problema este că am domeniu
serviciul modulului domeniu.negociator
pentru a fi injectat în pagecache
serviciu, dar când sun la domeniu.negociator
serviciu este întotdeauna nul
Nu conteaza ce fac. Cred că are de-a face cu ceva cu prioritate. Pot confirma că serviciul suprascris este executat.
Cod de suprascris PageCache serviciu
/**
* {@inheritdoc}
*/
funcția publică alter(ContainerBuilder $container) {
// Ignoră clasa language_manager pentru a testa negocierea limbajului de domeniu.
$definition = $container->getDefinition('http_middleware.page_cache');
$definition->setClass('Drupal\hcl_login\StackMiddleware\StaticCache')->addArgument(
noua referinta('domain.negotiator'),
);
}
Serviciu anulat
/**
* {@inheritdoc}
*/
manevrarea funcției publice(Solicitare $cerere, $tip = self::MASTER_REQUEST, $catch = TRUE): Răspuns {
$domeniu = \Drupal::service('domeniu.negotiator');
$x = $this->domainNegotiator->getActiveDomain();
$currentDomain = \Drupal::service('entity_type.manager')->getStorage('domain')->createHostname();
$răspuns = parent::handle($cerere, $tip, $catch);
returnează $răspuns;
}