คุณไม่จำเป็นต้องยกเว้นคีย์ API จากการส่งออก คุณสามารถตั้งค่าเป็นรหัสแทนได้ จากนั้นไม่สำคัญว่าจะส่งออกอะไร (...อาจเป็นไปได้ บางโมดูลจะใช้ไม่ได้กับแนวทางนี้)
คุณสามารถแทนที่การกำหนดค่าได้โดยตรงใน การตั้งค่า.php
.
นี่คือตัวอย่างของโมดูล Swiftmailer ที่นำมาจากหนึ่งในไซต์ของฉัน
swiftmailer.transport.yml
ขนส่ง: smtp
smtp_host: smtp.example.com
smtp_port: 465
smtp_encryption: ssl
smtp_credential_provider: swiftmailer
smtp_credentials:
swiftmailer:
ชื่อผู้ใช้: ''
รหัสผ่าน: ''
sendmail_path: /usr/sbin/sendmail
sendmail_mode: บีเอส
spool_directory: ''
_core:
default_config_hash: RSNbRD3ekSaZoE19f3eHhm93gKOcD2PtmaAVmV3XMes
รหัสภาษา: ja
ตอนนี้ฉันต้องการใช้คีย์ API อื่นสำหรับ dev + การผลิต ดังนั้นใน การตั้งค่า.php
ฉันตั้งค่าด้วยตนเอง:
$config['swiftmailer.transport']['smtp_credentials']['swiftmailer']['ชื่อผู้ใช้'] = 'apikey';
$config['swiftmailer.transport']['smtp_credentials']['swiftmailer']['รหัสผ่าน'] = 'ABCDEFGHIJKLMNOP'
ในกรณีของฉัน ฉันใช้สวิตช์เพื่อตรวจจับตัวแปรสภาพแวดล้อม (สด ทดสอบ พัฒนา ฯลฯ) เพราะนั่นเป็นวิธีที่โฮสต์ Pantheon ทำ แต่คุณสามารถทำสิ่งเดียวกันกับ การตั้งค่า local.dev.php
ไฟล์.
กำหนดค่าใน การตั้งค่า.php
จะไม่ถูกส่งออก; drush จะไม่สนใจมัน อย่างไรก็ตาม Drupal จะจัดลำดับความสำคัญของการตั้งค่าในโค้ดก่อนเสมอ .yml
ไฟล์. ดังนั้น หากคุณต้องการเปลี่ยนแปลงสิ่งนี้ คุณจะต้องอัปเดตโค้ดเอง คุณจะไม่สามารถทำการเปลี่ยนแปลงจาก UI ได้อีกต่อไป
โปรดทราบว่าการตรวจสอบคีย์ API ในการควบคุมเวอร์ชันเช่นนี้อาจเป็นปัญหาด้านความปลอดภัย
เดอะ กำหนดค่าโมดูลแทนที่ เพิ่มคำเตือนไปยังหน้าจอผู้ดูแลระบบที่เตือนคุณว่าคุณกำลังลบล้างค่าในโค้ด
หากกังวลเรื่องความปลอดภัย ล็อคเกอร์ โมดูลซึ่งสร้างขึ้นโดยเฉพาะเพื่อจัดการกับกรณีการใช้งานของคีย์ API ที่เล่นกล แต่คุณต้องจ่ายสำหรับสิ่งนั้น