xeonmedia / xeo_config_split
创建xeon媒体配置分割设置
Requires
- drupal/config_ignore: *
- drupal/config_split: *
This package is auto-updated.
Last update: 2024-09-06 03:13:32 UTC
README
背景
Xeno Media为大量网站构建。此模块允许我们快速为所有网站创建统一的配置分割。
安装
安装模块
composer require drupal/config_split
composer require drupal/config_ignore
composer require xenomedia/xeno_config_split
启用模块
drush en xeno_config_split -y
创建/更新 drush/policy.drush.inc
文件
<?php /** * @file * Drush policies. */ /** * Implementation of drush_hook_COMMAND_validate(). */ function drush_policy_config_import_validate($source = NULL, $destination = NULL) { // Run error if someone tries to run config-import instead of // config-split-import. return drush_set_error(dt('Per policy.drush.inc, you should run drush csim instead of drush cim.')); } /** * Implementation of drush_hook_COMMAND_validate(). */ function drush_policy_config_export_validate($source = NULL, $destination = NULL) { // Run error if someone tries to run config-import instead of // config-split-import. return drush_set_error(dt('Per policy.drush.inc, you should run drush csex instead of drush cex.')); }
创建分割目录
mkdir -p config/dev touch config/dev/.keep mkdir -p config/stage touch config/stage/.keep mkdir -p config/prod touch config/mkdir -p config/prod/.keep
在您的 settings.php 中更新/设置您的配置目录为
$config_directories[CONFIG_SYNC_DIRECTORY] = '../config/sync';
在您的本地或开发服务器上,将以下内容添加到您的 settings.local.php 或 settings.dev.php 文件中
// Config split settings for development. $config['config_split.config_split.production']['status'] = FALSE; $config['config_split.config_split.staging']['status'] = FALSE; $config['config_split.config_split.development']['status'] = TRUE;
如果您使用Pantheon,可以将以下内容添加到您的 settings.php 文件中。
if (isset($_ENV['PANTHEON_ENVIRONMENT'])) { // Live Pantheon environment. if ($_ENV['PANTHEON_ENVIRONMENT'] == 'live') { $config['config_split.config_split.production']['status'] = TRUE; $config['config_split.config_split.development']['status'] = FALSE; $config['config_split.config_split.staging']['status'] = FALSE; } // Dev / Test / Multi Branch Pantheon environment. else { $config['config_split.config_split.production']['status'] = FALSE; $config['config_split.config_split.development']['status'] = FALSE; $config['config_split.config_split.staging']['status'] = TRUE; } } else { $config['config_split.config_split.production']['status'] = FALSE; $config['config_split.config_split.development']['status'] = TRUE; $config['config_split.config_split.staging']['status'] = FALSE; }
如果您不在Pantheon上,创建/更新 settings.dev.php。
// Config split settings for development. $config['config_split.config_split.production']['status'] = TRUE; $config['config_split.config_split.staging']['status'] = FALSE; $config['config_split.config_split.development']['status'] = FALSE;
如果您不在Pantheon上,创建/更新 settings.stage.php。
// Config split settings for staging. $config['config_split.config_split.production']['status'] = FALSE; $config['config_split.config_split.staging']['status'] = TRUE; $config['config_split.config_split.development']['status'] = FALSE;
如果您不在Pantheon上,创建/更新 settings.prod.php。
// Config split settings for product. $config['config_split.config_split.production']['status'] = TRUE; $config['config_split.config_split.staging']['status'] = FALSE; $config['config_split.config_split.development']['status'] = FALSE;
然后在您的 local.settings.php 中根据环境进行注释/取消注释
@include('settings.dev.php');
# @include('settings.stage.php');
# @include('settings.prod.php');
安装后
此模块仅作为起点。安装后,您应该卸载该模块。
drush pm-uninstall xeno_config_split composer remove xenomedia/xeno_config_split
可能有这种情况,您不需要预发布和开发分割,因为它们可能完全相同。在这种情况下,您可以直接删除其中一个。
如何使用它
请参阅配置分割以获取完整文档。
简而言之,更新您要更改环境的 settings.local.php。
示例:添加一个模块,使其仅在生产环境中安装
更新您的 settings.local.php,以便只有 production
为 TRUE
,而其他设置为 FALSE
。
运行 drush csim -y
在完整分割选择中选中模块
运行 drush csex -y
示例:忽略Webform设置
导航到 /admin/config/development/configuration/ignore
将 webform.webform.*
添加到文本区域
保存配置
运行 drush csex -y