ฉันต้องแทนที่ เพจแคช
บริการเพื่อให้มีตรรกะการตรวจสอบที่กำหนดเองที่จะดำเนินการสำหรับผู้ใช้ที่ไม่ระบุตัวตน ปัญหาคือว่าฉันมี โดเมน
บริการของโมดูล โดเมน.negotiator
ที่จะฉีดเข้าไป เพจแคช
บริการแต่เมื่อผมโทรไปที่ โดเมน.negotiator
บริการอยู่เสมอ โมฆะ
ไม่ว่าฉันจะทำอะไร. ฉันคิดว่ามันเกี่ยวข้องกับสิ่งที่มีความสำคัญ ฉันสามารถยืนยันได้ว่ากำลังดำเนินการบริการแทนที่
รหัสที่จะแทนที่ เพจแคช บริการ
/**
* {@inheritdoc}
*/
ฟังก์ชั่นสาธารณะแก้ไข (ContainerBuilder $container) {
// แทนที่คลาส 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);
ส่งคืน $response;
}