構成とは
- モジュールの設定などを保存するための形式
- 最初はDBに保存されるが、管理画面やDrushコマンドでDBからYAMLファイルにエクスポートしたり、逆にYAMLファイルからDBにインポートしたりできる(そのためGitなどを使って手軽に別々の環境にデプロイすることが可能)
エクスポートされた構成ファイルの例
uuid: 8a77ce85-83d7-4c18-ab99-9aa9f8e851ee
name: My Site
mail: my_site@example.com
slogan: ''
page:
403: ''
404: ''
front: /
admin_compact_mode: false
weight_select_max: 100
langcode: ja
default_langcode: ja
_core:
default_config_hash: yTxtFqBHnEWxQswuWvkjE8mKw2t8oKuCL1q8KnfHuGE
mail_notification: ''
既存の構成の値を取得する方法
たとえばサイト名を取得したいとする。
構成名を確認
まずはサイト名が記録されている構成の名前を取得する。
ファイルで確認する場合
- 構成をエクスポートしてファイルに落とし込む
- エディタでサイト名を検索(My Siteなど)
- ヒットしたファイルの名前から
.yml
を抜いたものが構成名(サイト名の場合、system.site.yml
に入っているので、構成名はsystem.site
) - ヒットしたファイルが多すぎてわからない場合は
- サイト名を管理画面(
/admin/config/system/site-information
)から修正 -
drush cex
で構成をエクスポート - エクスポートされる構成のリストに出てくる構成名、お前が犯人だぁ!
- サイト名を管理画面(
[notice] Differences of the active config to the export directory:
+------------+-------------+-----------+
| Collection | Config | Operation |
+------------+-------------+-----------+
| | system.site | Update |
+------------+-------------+-----------+
The .yml files in your export directory (../config/sync) will be deleted and replaced with the active config. (yes/no) [yes]:
>
管理画面から確認する場合
-
/admin/config/development/configuration/single/export
でなんかそれっぽい構成タイプ・構成名を選択して、サイト名が入ってるか確認(サイト名の場合、簡易校正
>system.site
)
構成のキーを確認する
構成の中を確認して、何というキーで保存されてるか確認。サイト名の場合、system.site.yml
の内容は以下なので、name
がキーになる。
uuid: 8a77ce85-83d7-4c18-ab99-9aa9f8e851ee
name: My Site # サイト名
mail: my_site@example.com
slogan: ''
page:
403: ''
404: ''
front: /
admin_compact_mode: false
weight_select_max: 100
langcode: ja
default_langcode: ja
_core:
default_config_hash: yTxtFqBHnEWxQswuWvkjE8mKw2t8oKuCL1q8KnfHuGE
mail_notification: ''
構成を取得する
構成名とキーがわかればあとは簡単。
$site_name = \Drupal::config('system.site')->get('name');
ネストされている値を取得したいときはドットでつなぐ。
$front = \Drupal::config('system.site')->get('page.front');