xeonmedia/xeo_config_split

创建xeon媒体配置分割设置

安装: 606

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 1

类型:drupal-module

1.0.1 2021-10-05 20:06 UTC

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,以便只有 productionTRUE,而其他设置为 FALSE

运行 drush csim -y

在完整分割选择中选中模块

运行 drush csex -y

示例:忽略Webform设置

导航到 /admin/config/development/configuration/ignore

webform.webform.* 添加到文本区域

保存配置

运行 drush csex -y