ฉันกำลังตั้งค่าการแบ่งการกำหนดค่าด้วย 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 ยังคง "ไม่ทำงาน" แม้ว่าจะตั้งค่าไว้ก็ตาม ['สถานะ'] = จริง;
,
มีความคิดว่าเกิดอะไรขึ้นที่นี่?