概要
Config設定を開発、本番、etcで分けておくためのツール。
開発環境だけで使うモジュール(たとえばStage File Proxy)や、
本番だけで有効な設定(メールサーバ設定やGTMなど)を環境ごとに管理できる。
AEMなどはサーバのRun Modeで切り分けできたりするが、Drupalはそんなことない。
できること
環境ごとにConfig の yml ファイルを分けて管理ができる。
通常、DrupalのConfigはまとめて指定したフォルダにymlで書き出される。
その中から、個別管理が必要なものをピックアップして別管理できる。
※ 環境ごとにすべて切り分けされるわけではなく、あくまで個別にピックアップした設定だけを分けて管理ができる。
これにより、モジュールの個別ON/OFFや、設定値の変更ができる。
設定方法
1)モジュールのインストール
ほかと変わらず、composer installで入れる。管理画面インストールする。
2)Configの出力先フォルダを切る
../config/sync などに通常設定を出力していると思うが、個別管理したい環境のフォルダを作成しておく。
この際、../config/syncと入れ子にはできないので、兄弟などの場所にする。
例: ../config/sync-devenv
3)個別環境用の設定を記述する
管理画面側のページ(Configuration Split setting )を開いて、
"Add Configuration Split setting" から個別環境用の設定を作っていく。
今回は、開発環境だけで使うStage File Proxyモジュールを設定したい。
ラベル: Development(MachineName: development)
Folder: ../config/sync-devenv
Complete Split > モジュール: Stage File Proxy にチェック
4)環境ごとの設定
Developmentの設定を作成したが、サーバそのものは自分がDevelopmentなのかわかっていない。そのため、環境ごとの settings.php に作った設定のON/OFFを記述する。
わたしの場合は、settings.development.php の形で環境ごとのsettings.phpを用意している。
そこに、次の設定を記述する
$config['config_split.config_split.development']['status'] = TRUE;
この場合、Machine Name が development のConfigSplit設定が有効になる。
逆に、本番環境ではこの設定をFALSEにすれば読み込まれない。
使い方
通常のConfigインポート/エクスポートと変わらない。
// 設定のエクスポート
$ drush cex
// 設定のインポート
$ drush cim
管理画面側からでもよい。
所感
便利。