Вам не нужно исключать ключи API из экспорта; вместо этого вы можете установить их в коде, и тогда не имеет значения, что экспортируется. (... возможно. Некоторые модули не будут работать с таким подходом.)
Вы можете переопределить конфигурацию непосредственно в настройки.php
.
Вот пример с модулем Swiftmailer, взятым с одного из моих сайтов.
swiftmailer.transport.yml
транспорт: смтп
smtp_host: smtp.example.com
smtp_порт: 465
smtp_encryption: ssl
smtp_credential_provider: программа быстрой почты
smtp_credentials:
быстрый почтовик:
имя пользователя: ''
пароль: ''
sendmail_path: /usr/sbin/sendmail
sendmail_mode: бс
spool_directory: ''
_основной:
default_config_hash: RSNbRD3ekSaZoE19f3eHhm93gKOcD2PtmaAVmV3XMes
код языка: ja
Теперь я хочу использовать другой ключ API для разработки и производства. Итак, в настройки.php
, задаю конфиг вручную:
$config['swiftmailer.transport']['smtp_credentials']['swiftmailer']['username'] = 'apikey';
$config['swiftmailer.transport']['smtp_credentials']['swiftmailer']['пароль'] = 'ABCDEFGHIJKLMNOP'
В моем случае я использую переключатель для обнаружения переменной среды (live, test, dev и т. д.), потому что так делает хост Pantheon, но вы можете сделать то же самое с settings.local.dev.php
файлы.
Конфиг в настройки.php
никогда не будет экспортироваться; drush проигнорирует это. Тем не менее, Drupal всегда будет отдавать приоритет конфигурации, установленной в коде, а не .yml
файлы. В результате, если вам нужно изменить это, вам придется обновить сам код; вы больше не сможете вносить изменения из пользовательского интерфейса.
Также обратите внимание, что такая проверка ключей API в системе управления версиями может быть потенциальной проблемой безопасности.
Модуль переопределения конфигурации добавляет предупреждение на экраны администратора, которое напоминает вам, что вы переопределяете значения в коде.
Если безопасность является проблемой, есть Локр модуль, который был создан специально для обработки вариантов использования манипулирования ключами API, но за это нужно платить.