Score:0

วิธีสร้างการส่งออกการกำหนดค่าเพื่อให้ติดตั้งสองโมดูลซึ่งหนึ่งในนั้นมีการพึ่งพากัน

ธง cn

ฉันได้เขียนโมดูลที่กำหนดเองที่ใช้ jwt.transcoder บริการจาก jwt โมดูล. ในที่สุดก็ให้บริการอื่น:

$ cat mymodule.services.yml
บริการ:
  mymodule.jwt:
    คลาส: Drupal\mymodule\Services\Jwt
    ข้อโต้แย้ง: [ '@jwt.transcoder', '@event_dispatcher' ]

ทุกอย่างเป็นไปอย่างราบรื่นในระหว่างการพัฒนา อย่างไรก็ตาม ไม่มีการติดตั้งโมดูล jwt หรือโมดูลแบบกำหนดเองใหม่ของฉันบนไซต์ของเราก่อนที่ฉันจะเริ่มพัฒนาคุณลักษณะนี้

ฉันเพิ่มทั้งสองโมดูลด้วยตัวเขียน และส่งออกการกำหนดค่าเพื่อเปิดใช้งาน (และตั้งค่าคีย์การเข้ารหัส ฯลฯ) อย่างไรก็ตาม เมื่อฉันไปปรับใช้ ฉันได้รับข้อผิดพลาดในการนำเข้าการกำหนดค่า ซึ่งเห็นได้ชัดว่ามาจากการพึ่งพา jwt.transcoder บริการซึ่งยังไม่ได้ติดตั้ง ณ จุดนี้

ใน CheckExceptionOnInvalidReferenceBehaviorPass.php บรรทัดที่ 86:
                                                                                      
  บริการ "mymodule.jwt" มีการพึ่งพาบริการที่ไม่มีอยู่จริง "jwt.transcoder" 

ด้วยกระบวนการปรับใช้ของเรา เราสามารถปรับใช้โค้ดเบสได้ครั้งละหนึ่งโค้ดเท่านั้น หมายความว่า ถ้าฉันต้องการนำเข้าการกำหนดค่าเพื่อรับ jwt ติดตั้งก่อนและนำเข้าการกำหนดค่าอื่นด้วยการเปิดใช้งานโมดูลที่กำหนดเองของฉัน ฉันจะต้องทำการปรับใช้ครั้งที่สองเพื่อรับโค้ดเบสการกำหนดค่าที่สองบนเซิร์ฟเวอร์

มีวิธีใดบ้างที่จะรับการนำเข้าการกำหนดค่าเพื่อติดตั้ง jwt ก่อน จากนั้นตามด้วยโมดูลที่กำหนดเองของฉันในโค้ดเบสเดียว ดังนั้นการพึ่งพานี้จึงได้รับการแก้ไข

sonfd avatar
in flag
"jwt" ถูกทำเครื่องหมายว่าเป็นการพึ่งพาของ "mymodule" ใน mymodule.info.yml หรือไม่
cn flag
@sonfd นั่นมัน! ขอขอบคุณ. กรุณาใส่คำตอบนั้นและฉันจะยอมรับมัน :)
Score:3
ธง in

คุณต้องทำเครื่องหมาย jwt โมดูลเป็นการอ้างอิงของ mymodule ใน mymodule.info.yml ผ่านทาง การพึ่งพา กุญแจ.

การพึ่งพา: รายการของโมดูลอื่น ๆ ที่โมดูลของคุณขึ้นอยู่กับ การขึ้นต่อกันของ Drupal core หรือโมดูลร่วมควรได้รับการตั้งชื่อในรูปแบบ {project}:{module} โดยที่ {project} เป็นชื่อโครงการตามที่ปรากฏใน URL ของ Drupal.org (เช่น drupal.org/project/views) และ { module} คือชื่อเครื่องของโมดูล การขึ้นต่อกันยังสามารถรวมการจำกัดเวอร์ชันได้ด้วย เช่น webform:webform (>=8.x-5.x) โปรดทราบว่าหากโมดูลของคุณมีการขึ้นต่อกันของโมดูลหรือไลบรารีที่สนับสนุนอื่นๆ ควรประกาศสิ่งเหล่านี้ในไฟล์ composer.json ของโมดูล หากคุณมีโมดูลแบบกำหนดเองในเครื่องที่ต้องพึ่งพาซึ่งกันและกัน คุณสามารถใช้ {module}:{module} (หรือ {module}:{submodule} สำหรับโมดูลย่อย)

แหล่งที่มา: ให้ Drupal ทราบเกี่ยวกับโมดูลของคุณด้วยไฟล์ .info.yml

ตัวอย่างเช่น ภายใน mymodule.info.yml ของคุณ:

ชื่อ: โมดูลของฉัน
ประเภท: โมดูล
...
การพึ่งพา:
  - jwt:jwt

โพสต์คำตอบ

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