Score:2

การฉีดการพึ่งพาใน FieldItemList

ธง ph

ฉันกำลังสร้างคลาสที่กำหนดเองสองสามคลาสที่ขยาย FieldItemList และพวกเขาต้องการบริการบางอย่าง

ฉันได้ดูคลาสหลักที่ขยายคลาสนั้นแล้วและไม่มีคลาสใดทำการฉีดการพึ่งพา พวกเขาทั้งหมดเรียก \Drupal::service()

มีวิธีฉีดบริการที่นี่หรือฉันควรทำตามรูปแบบหลัก?

4uk4 avatar
cn flag
ไม่ ยังไม่มีวิธีฉีดบริการและคุณต้องใช้ wrapper บริการแบบคงที่ ดูความคิดเห็นนี้และปัญหาที่เชื่อมโยง
leymannx avatar
ne flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [ฉันจะใส่การอ้างอิงลงในปลั๊กอิน @FieldType ได้อย่างไร](https://drupal.stackexchange.com/questions/224247/how-do-i-inject-a-dependency-into-a-fieldtype-plugin)
Lambic avatar
ph flag
FieldItemList ไม่ใช่ปลั๊กอินประเภทฟิลด์พูดอย่างเคร่งครัด แต่ดูเหมือนว่าจะใช้สิ่งเดียวกัน ฉันจะรวมบริการที่ฉันต้องการไว้ในบริการของฉันเอง ดังนั้นฉันจึงต้องโทรหาผู้ให้บริการห่อบริการเพียงครั้งเดียว
Score:1
ธง cn

ตัวจัดการปลั๊กอินประเภทฟิลด์สร้างอินสแตนซ์ทั้ง FieldItem และ FieldItemList ผ่านตัวจัดการข้อมูลที่พิมพ์:

Drupal\Core\Field\FieldTypePluginManager

  ฟังก์ชันสาธารณะ createFieldItemList (FieldableEntityInterface $entity, $field_name, $values ​​= NULL) {
    // ใช้ประโยชน์จากการสร้างต้นแบบของ Typed Data API เพื่อการสร้างอินสแตนซ์ที่รวดเร็ว
    ส่งคืน $this->typedDataManager->getPropertyInstance($entity->getTypedData(), $field_name, $values);
  }

  ฟังก์ชั่นสาธารณะ createFieldItem (FieldItemListInterface $items, $index, $values ​​= NULL) {
    // ใช้ประโยชน์จากการสร้างต้นแบบของ Typed Data API เพื่อการสร้างอินสแตนซ์ที่รวดเร็ว
    ส่งคืน $this->typedDataManager->getPropertyInstance($items, $index, $values);
  }

เพื่อให้สามารถฉีดบริการได้ คุณต้องรอจนกว่าจะถึงปัญหานี้ อนุญาตปลั๊กอินข้อมูลที่พิมพ์เพื่อรับการอ้างอิงที่แทรกเข้ามา ได้รับการแก้ไขแล้ว

โพสต์คำตอบ

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