Bạn không cần loại trừ các khóa API khỏi quá trình xuất; thay vào đó, bạn có thể đặt chúng trong mã và sau đó những gì được xuất không thành vấn đề. (...có thể. Một số mô-đun sẽ không hoạt động với phương pháp này.)
Bạn có thể ghi đè cấu hình trực tiếp trong cài đặt.php
.
Đây là một ví dụ với mô-đun Swiftmailer được lấy từ một trong các trang web của tôi.
swiftmailer.transport.yml
vận chuyển: smtp
smtp_host: smtp.example.com
smtp_port: 465
smtp_encryption: ssl
smtp_credential_provider: swiftmailer
smtp_credentials:
người gửi thư nhanh:
tên tài khoản: ''
mật khẩu mở khóa: ''
sendmail_path: /usr/sbin/sendmail
sendmail_mode: bs
spool_directory: ''
_cốt lõi:
default_config_hash: RSNbRD3ekSaZoE19f3eHhm93gKOcD2PtmaAVmV3XMes
mã ngôn ngữ: ja
Bây giờ tôi muốn sử dụng một khóa API khác để phát triển + sản xuất. Vì vậy, trong cài đặt.php
, tôi đặt cấu hình theo cách thủ công:
$config['swiftmailer.transport']['smtp_credentials']['swiftmailer']['username'] = 'apikey';
$config['swiftmailer.transport']['smtp_credentials']['swiftmailer']['password'] = 'ABCDEFGHIJKLMNOP'
Trong trường hợp của tôi, tôi đang sử dụng một công tắc để phát hiện một biến môi trường (trực tiếp, thử nghiệm, nhà phát triển, v.v.) vì đó là cách máy chủ Pantheon thực hiện, nhưng bạn có thể làm điều tương tự với cài đặt.local.dev.php
các tập tin.
cấu hình trong cài đặt.php
sẽ không bao giờ được xuất khẩu; drush sẽ bỏ qua nó. Tuy nhiên, Drupal sẽ luôn ưu tiên cấu hình được đặt trong mã hơn .yml
các tập tin. Do đó, nếu bạn cần thay đổi điều này, bạn sẽ phải tự cập nhật mã; bạn sẽ không thể thực hiện các thay đổi từ giao diện người dùng nữa.
Cũng xin lưu ý rằng việc kiểm tra các khóa API trong kiểm soát phiên bản như thế này có thể là một vấn đề bảo mật.
Các Mô-đun ghi đè cấu hình thêm một cảnh báo vào màn hình quản trị để nhắc bạn rằng bạn đang ghi đè các giá trị trong mã.
Nếu an ninh là một mối quan tâm, có tủ khóa mô-đun, được xây dựng riêng để xử lý trường hợp sử dụng tung hứng các khóa API, nhưng bạn phải trả tiền cho điều đó.