Score:1

การแทรกบริการลงในบริการอื่นไม่ทำงาน

ธง jm

ฉันต้องแทนที่ เพจแคช บริการเพื่อให้มีตรรกะการตรวจสอบที่กำหนดเองที่จะดำเนินการสำหรับผู้ใช้ที่ไม่ระบุตัวตน ปัญหาคือว่าฉันมี โดเมน บริการของโมดูล โดเมน.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;
  }

4uk4 avatar
cn flag
แม้ว่าจะดูเหมือนบริการ แต่มิดเดิลแวร์ไม่ใช่บริการ Drupal แต่จะทำงานนอกเคอร์เนล Drupal
Jaswin Singh avatar
jm flag
ขอบคุณ @ 4k4 สำหรับการตอบกลับ มีวิธีแก้ไขใดบ้างเพื่อให้บรรลุผล เริ่มแรก ฉันใช้การสมัครสมาชิกเหตุการณ์ KERNAL:: REQUEST เพื่อเพิ่มตรรกะการตรวจสอบที่กำหนดเองซึ่งจำเป็นต้องเรียกใช้ในทุก ๆ หน้าสำหรับผู้ใช้ที่ไม่ระบุตัวตน แต่เนื่องจากการแคช drupal เพจจึงถูกแคชและไม่สามารถทำได้
4uk4 avatar
cn flag
วิธีแก้ปัญหาเพื่ออะไร? แคชของหน้านั้นเหมือนกับการแคชพร็อกซีย้อนกลับตาม URL (รวมถึงชื่อโดเมนและสตริงข้อความค้นหาด้วย) หากนี่ไม่ใช่สิ่งที่คุณต้องการ ให้ถอนการติดตั้งโมดูลนี้และใช้แคชเพจแบบไดนามิก
leymannx avatar
ne flag
แล้ว `$request->getHost()` หรือ `$request->getSchemeAndHttpHost()` ล่ะ?
Jaswin Singh avatar
jm flag
@leymannx ถึงกระนั้น ฉันต้องการบริการผู้ใช้เพื่อตรวจสอบว่ารายการใดแสดงผู้ใช้ที่ไม่ระบุตัวตนเสมอ ฉันลองกับสมาชิกเหตุการณ์ แต่เมื่อฉันตั้งค่าลำดับความสำคัญเป็น 210 ฉันไม่สามารถเข้าถึงบริการได้
Jaswin Singh avatar
jm flag
ปัญหาอีกประการหนึ่งคือเมื่อใช้ผู้สมัครสมาชิกเหตุการณ์ เพจจะถูกแคชและการตรวจสอบความถูกต้องแบบกำหนดเองจะไม่ถูกดำเนินการทุกครั้ง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา