Speicherung der Konfiguration in Drupal 8
Standardmäßig werden Konfigurationsinformationen in Drupal 8 in der Datenbank gespeichert.
Format der Konfigurationsdatei (YAML)
Erweiterungen (Module, Themes und Profile) liefern Konfigurationsdaten in YAML-Dateien.
Hier ist ein Beispiel für eine Konfigurationsdatei:
some_string: 'Woo kittens!' some_int: 42 some_bool: true
Konfiguration kann auch verschachtelt sein. Hier ein Beispiel:
name: thumbnail label: 'Thumbnail (100x100)' effects: 1cfec298-8620-4749-b100-ccb6c4500779: id: image_scale data: width: 100 height: 100 upscale: true weight: 0 uuid: 1cfec298-8620-4749-b100-ccb6c4500779
Konfigurationsschema
Konfiguration hat ein Schema. Dies wird in der Konfigurationsschema/-Metadaten-Dokumentation beschrieben.
Standardkonfiguration für Erweiterungen
Eine Erweiterung (Modul, Theme oder Profil), die Standardwerte für ihre Konfiguration bereitstellt, muss diese Konfiguration in YAML-Dateien im Unterverzeichnis config/install
ablegen.
Wenn eine Erweiterung nur einfache Basiskonfiguration benötigt, können alle Standardwerte in einer Datei modulename.settings.yml
abgelegt werden. Für komplexere Einstellungen können Sie Ihre Konfiguration auf mehrere Dateien aufteilen. Jedes Konfigurationsobjekt sollte in seine eigene YAML-Datei gelegt werden, die generiert wird, wenn das Modul seine Konfiguration schreibt (versuchen Sie nicht, diese manuell zu schreiben).
Um Standardwerte für Konfigurationen bereitzustellen, die dynamische Werte benötigen (die also nicht in modulename.settings.yml
gesetzt werden können), tun Sie dies in hook_install()
. Zum Beispiel:
/** * Implements hook_install(). */ function modulename_install() { // Setze Standardwerte für Konfigurationen, die dynamische Werte benötigen. \Drupal::configFactory()->getEditable('modulename.settings') ->set('default_from_address', \Drupal::config('system.site')->get('mail')) ->save(); }
Optionale Konfiguration für Erweiterungen
Optionale Konfigurationselemente für eine Erweiterung (Modul oder Theme) werden im Unterverzeichnis config/optional
gespeichert.
Dies sind Konfigurationselemente, die von etwas abhängen, wovon die Erweiterung selbst nicht explizit abhängig ist, daher werden sie nur gesetzt, wenn alle ihre Abhängigkeiten erfüllt sind.
Beispielsweise in einem Szenario, in dem Modul A optionale Konfiguration besitzt, die Modul B benötigt, Modul A aber zuerst installiert wird und Modul B später, wird das Verzeichnis config/optional
von Modul A zu diesem Zeitpunkt auf neu erkannte Abhängigkeiten geprüft, und die Konfiguration wird dann installiert. Wenn Modul B nie installiert wird, wird das optionale Konfigurationselement ebenfalls nicht installiert.
Aktive Konfigurationsspeicherung
Standardmäßig speichert Drupal 8 die aktive Konfiguration in der Datenbank, um Leistung und Skalierbarkeit zu verbessern. Siehe „Aktive Konfiguration standardmäßig“, die von Dateispeicher auf Datenbankspeicher geändert wurde, für weitere Informationen.
Konfiguration von YAML in die Datenbank aktualisieren
Wenn Sie während der Entwicklung die Konfiguration von YAML in die Datenbank aktualisieren müssen, können Sie den Befehl drush config-import
(cim) verwenden.
Sie bearbeiten die YAML-Konfigurationsdatei im Ordner der aktiven Konfiguration (wie in der settings.php
definiert, z. B. sites/default/files/config_6dh1U_2YKLGrrh5oLxAgobbledygook/sync
), und führen dann drush cim aus. Leeren Sie den Cache (drush cr), um die Änderungen zu sehen.
Wenn Sie mit den Einstellungen in der YAML-Datei zufrieden sind, kopieren Sie diese in Ihr Modul oder Theme.
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.