Score:1

การแทนที่การกำหนดค่ามีผลที่คาดเดาไม่ได้

ธง nr

ฉันกำลังตั้งค่าการแบ่งการกำหนดค่าด้วย Drupal 9 และพบผลลัพธ์ที่ไม่คาดคิด

ไม่มีการแยกของฉันถูกทำเครื่องหมายว่าใช้งานอยู่ในการกำหนดค่าที่ใช้งานอยู่หรือการกำหนดค่าที่ส่งออก YAML

ฉันต้องการตั้งค่า Local split in เริ่มต้น การตั้งค่า.php แล้วใช้ การตั้งค่า.local.php เพื่อแทนที่มัน ผู้พัฒนา, สจล, พร สภาพแวดล้อม

สภาพแวดล้อมการพัฒนาในเครื่องของฉันคือ DDEV-Local v1.17.5 สภาพแวดล้อมระยะไกลทั้งสามแห่งได้รับการตั้งค่าทั้งหมดบนเซิร์ฟเวอร์ระยะไกลหนึ่งเครื่องใน AWS ส่วนตัวของไคลเอ็นต์ ใน Apache VirtualHosts สามแห่งที่แตกต่างกัน

ฉันไม่สามารถใช้ตัวแปรสภาพแวดล้อมเพื่อแยกความแตกต่างของ ผู้พัฒนา, สจล, พร สภาพแวดล้อมเนื่องจากทั้งหมดอยู่ในโฮสต์เดียว เป็นความท้าทายในการสร้างความแตกต่างของสภาพแวดล้อมโดยไม่มีตัวแปรสภาพแวดล้อม Acquia หรือ Pantheon ตามปกติ

(หมายเหตุ: ฉันเข้าใจถ้า config_split อยู่นอกหัวข้อที่นี่เนื่องจากไม่ใช่โมดูลหลัก ฉันได้สร้าง คิวปัญหาบน Drupal.orgแต่ฉันยังคงหวังว่าจะมีคนเห็นคำถามที่นี่และให้ข้อมูลเชิงลึก)

นี่คือการแทนที่เริ่มต้นใน การตั้งค่า.php:

  $config['config_split.config_split.local']['status'] = จริง;
  $config['config_split.config_split.prd']['สถานะ'] = FALSE;
  $config['config_split.config_split.stg']['สถานะ'] = FALSE;
  $config['config_split.config_split.dev']['status'] = FALSE;

จนถึงตอนนี้ดีมาก การแยกในเครื่องคือ "ใช้งานอยู่ (เขียนทับ)"

สิ่งที่แปลกเมื่อฉันแก้ไขสิ่งนี้เพื่อเปิดใช้งานการแยกอื่นในสภาพแวดล้อมท้องถิ่นของฉัน:

  $config['config_split.config_split.local']['status'] = FALSE;
  $config['config_split.config_split.prd']['status'] = จริง;
  $config['config_split.config_split.stg']['สถานะ'] = FALSE;
  $config['config_split.config_split.dev']['status'] = FALSE;

หลังจากแก้ไข การตั้งค่า.php (และการล้างแคชของหลักสูตร) ​​การแบ่งการผลิตเป็น "ใช้งานอยู่ (เขียนทับ)" ตามที่คาดไว้

น่าเสียดายที่ Local split ยังเป็น "ใช้งานอยู่ (เขียนทับ)" แม้ว่าจะตั้งค่าไว้ก็ตาม ['สถานะ'] = เท็จ;,

สิ่งต่าง ๆ เริ่มแปลกขึ้นเมื่อฉันพยายามลบล้างค่าของการแยกทั้งหมดอย่างมีเหตุผล:

  $config['config_split.config_split.local']['status'] = FALSE;
  $config['config_split.config_split.prd']['status'] = จริง;
  $config['config_split.config_split.stg']['สถานะ'] = จริง;
  $config['config_split.config_split.dev']['status'] = จริง;

ตอนนี้การแยกในท้องถิ่นคือ นิ่ง "ใช้งาน (เขียนทับ)" แม้จะมีการตั้งค่า ['สถานะ'] = เท็จ;,

การแยกสเตจและการผลิตนั้น "ใช้งานอยู่ (เขียนทับ)" เพื่อให้ตรงกัน ['สถานะ'] = จริง;,

และการแยก Dev ยังคง "ไม่ทำงาน" แม้ว่าจะตั้งค่าไว้ก็ตาม ['สถานะ'] = จริง;,

มีความคิดว่าเกิดอะไรขึ้นที่นี่?

Score:1
ธง nr

ฉันเปลี่ยนชื่อเครื่องของการแยก (เช่น dev_split) และทุกอย่างทำงานตามที่คาดไว้

ดังนั้นปัญหาจึงเกิดจากการที่ อะควา/blt แพ็คเกจซึ่งใช้ acquia/drupal-เครื่องตรวจจับสภาพแวดล้อม แพ็คเกจเพื่อตั้งค่าการแยกที่ใช้งานอยู่ตามตัวแปรสภาพแวดล้อมของ Acquia

เนื่องจาก $_ENV['AH_SITE_ENVIRONMENT'] ไม่ได้ตั้งค่า การแบ่งสภาพแวดล้อมในเครื่องจะใช้งานได้เสมอ

ฉันไม่แน่ใจว่าเหตุใดการแยก Dev จึงไม่สามารถเปิดใช้งานได้ แต่นั่นอาจเกี่ยวข้องเช่นกัน

ฉันสามารถลบ BLT ออกจากโครงการได้ทั้งหมดเนื่องจากเราไม่ได้ใช้โฮสติ้งของ Acquia ดังนั้นเราจึงไม่ได้ใช้มันมากนักอีกต่อไป แต่ฉันลังเลที่จะตั้งค่าการทดสอบอัตโนมัติอีกครั้งโดยปราศจากความดีของ Robo ทั้งหมด

แต่ฉันทำ อะควา/blt การพึ่งพานักแต่งเพลง dev ดังนั้นจึงไม่ถูกติดตั้งในสภาพแวดล้อมที่สูงขึ้น เห็นได้ชัดว่านั่นยังไม่เพียงพอ -- มันยังยุ่งกับการแบ่งการกำหนดค่าของฉัน และอาจมีผลข้างเคียงที่คาดเดาไม่ได้อื่นๆ

การแก้ไขด่วนคือการเปลี่ยนชื่อเครื่องสำหรับการแยก การเลิกใช้ BLT อาจเป็นทางออกที่ดีกว่าในระยะยาว

ปิด (ทำงานได้ตามที่ตั้งใจไว้)

ป.ล.: หากโครงการ BLT ของคุณโฮสต์บน Acquia การตรวจหาสภาพแวดล้อมจะทำงานได้อย่างถูกต้อง และปัญหานี้จะไม่เกิดขึ้น ไม่น่าแปลกใจว่านี่เป็นปัญหาที่หายาก คนส่วนใหญ่อาจไม่ใช้ BLT นอกสภาพแวดล้อมของ Acquia

za flag
ฉันได้ติดต่อกับ BLT เมื่อเร็ว ๆ นี้และใช่ การตั้งค่ารวมถึง (รวมถึงค่า Acquia) ทำให้มันค่อนข้างสับสน นอกจากนี้ เว้นแต่คุณจะสร้างตัวตรวจจับของคุณเอง จะมีเพียง [dev, stage, prod, ci, ode, ah_other, local] - EnvironmentDetector#getEnvironments

โพสต์คำตอบ

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