9.9.2. 配置分割(Config Split)、配置忽略(Config Ignore)。为不同实例创建不同的配置。
在开发和生产实例中,访问第三方服务的配置经常需要不同。为了通过配置实现这一点,你需要使用配置分割(Configuration Split)模块:
https://www.drupal.org/project/config_split
启用配置分割模块后,你将能够为不同实例指定文件夹。让我们进入配置模块的配置分割设置页面:
/admin/config/development/configuration/config-split
现在让我们为本地、开发和生产实例添加配置分割设置。
如果路径在所有实例中相同,可以立即指定文件夹路径。你还需要禁用“启用”复选框,我们将在每个实例的 settings.php 文件中分别启用所需的配置。
添加配置分割设置后,我们需要创建 config/local、config/dev、config/live 文件夹:
现在让我们在本地实例中启用本地配置:
$config['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
现在,如果你进入配置同步页面,你将看到已重写的配置:
现在,你可以为不同的实例定义不同的访问权限,例如 SMTP、Salesforce、支付系统和其他服务。
配置忽略(Config Ignore)
也许你不喜欢 SMTP 访问权限出现在配置文件中并被添加到 Git 中。那么,你可以使用配置忽略模块将 SMTP 设置添加到忽略列表中:
https://www.drupal.org/project/config_ignore
我们使用配置分割模块为站点名称创建了不同的设置。我们也可以将 system.site 配置添加到忽略列表中。让我们进入配置忽略设置页面:
/admin/config/development/configuration/ignore
然后,我们将这个 system.site 配置添加到忽略列表:
现在,如果你进入配置同步页面,更新和被忽略的配置将显示在一个单独的部分: