Опубликовано Ivan Abramenko от Вт, 11/19/2019 - 11:32

Очень часто доступы к 3rd party сервисам должны быть различными на dev и live инстансами. Для того чтобы это сделать с помощью конфигов, нужно использовать модуль Configuration Split:

https://www.drupal.org/project/config_split

После того как вы включите модуль Config Split, у вас появится возможность указать папки для инстансов. Давайте зайдем на страницу настроек модуля Configuration - Configuration Split settings:

/admin/config/development/configuration/config-split

configuation settings

Теперь добавим split settings для local, dev, live инстансов. 

spit settings

Путь к папке можно указать сразу, если путь одинаковый на всех инстансах. Также нужно будет отключить Active галочку, мы будем включать нужную нам конфигурацию через settings.php в каждом из инстансов отдельно.

created live

После того как мы добавили Config Split settings, нужно создать папки config/local, config/dev, config/live:

config

Теперь давайте включим local настройки на нашем локальном инстансе:

['config_split.config_split.local']['status'] = TRUE;?>

Соответственно для dev и live инстансов нужно будет добавить в settings.php следующие строчки:

// Dev
$config['config_split.config_split.dev']['status'] = TRUE;
 
// Live
$config['config_split.config_split.live']['status'] = TRUE;
?>

Теперь чтобы переопределить какие-то из конфигов для определенного инстанса, нужно просто скинуть нужный конфиг в нужную папку и для этого инстанса будет определен нужный отдельный конфиг. Давайте переименнуем имя сайта отдельно для локального сайта:

/config/local/system.site.yml:

uuid: e6754486-60a0-48ad-b2d1-84a9b46926f4
name: 'DrupalBook Lessons - Local Site'
mail: levmyshkin89@gmail.com
slogan: ''
page:
  403: ''
  404: ''
  front: /node
admin_compact_mode: false
weight_select_max: 100
langcode: en
default_langcode: en
_core:
  default_config_hash: yXadRE77Va-G6dxhd2kPYapAvbnSvTF6hO4oXiOEynI

system yml

Теперь если вы зайдете на страницу Configuration Synchronization, вы увидете переопределенный конфиг:

view changed

Теперь вы можете определять разные доступы на разных инстансах для SMTP, Salesforce, систем оплаты и прочих сервисов.

Config Ignore

Возможно вам не нравится, что ваши доступы к SMTP лежат в конфигах и добавлены в Git. Тогда вы можете добавить настройки SMTP в config ignore с помощью модуля Configuration Ignore:

https://www.drupal.org/project/config_ignore

Мы использовали Config Split модуль, чтобы сделать разные настройки для названия сайта. Мы также можем добавить в игнор конфиг для system.site. Давайте зайдем на страницу настроек Config Ignore:

/admin/config/development/configuration/ignore

И добавим в ignore этот конфиг system.site:

ignore

Теперь если вы зайдете на страницу Configuration Synchronization, то обновленные и заигнорированные конфиги будут показаны в отдельном разделе:

syncronize