Archiviazione della configurazione in Drupal 8
Per impostazione predefinita, le informazioni di configurazione in Drupal 8 vengono salvate nel database.
Formato dei file di configurazione (YAML)
Le estensioni (moduli, temi e profili) forniscono i dati di configurazione in file YAML.
Ecco un esempio di file di configurazione:
some_string: 'Woo kittens!' some_int: 42 some_bool: true
La configurazione può anche essere annidata. Ecco un esempio:
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
Schema di configurazione
La configurazione ha uno schema. Questo è descritto in schema di configurazione / documentazione dei metadati.
Configurazione predefinita per un’estensione
Un’estensione (modulo, tema o profilo) che fornisce valori predefiniti per la propria configurazione deve inserire questi file YAML nella sottocartella config/install.
Se l’estensione richiede solo parametri di configurazione semplici, tutte le impostazioni predefinite possono essere collocate in un unico file modulename.settings.yml. Per impostazioni più complesse, puoi suddividere la configurazione in più file. Ogni oggetto di configurazione deve avere il proprio file YAML, generato automaticamente quando il modulo salva la configurazione (non tentare di scriverli manualmente).
Per fornire valori predefiniti per configurazioni che richiedono valori dinamici (che quindi non possono essere impostati in modulename.settings.yml), è possibile farlo in hook_install(). Ad esempio:
/**
* Implements hook_install().
*/
function modulename_install() {
// Imposta valori predefiniti per configurazioni che richiedono valori dinamici.
\Drupal::configFactory()->getEditable('modulename.settings')
->set('default_from_address', \Drupal::config('system.site')->get('mail'))
->save();
}
Configurazione opzionale per un’estensione
Gli elementi di configurazione opzionali per un’estensione (modulo o tema) vengono memorizzati nella sottocartella config/optional.
Si tratta di elementi di configurazione che dipendono da qualcosa di cui l’estensione non dipende esplicitamente, e quindi vengono installati solo se tutte le dipendenze richieste sono soddisfatte.
Ad esempio, se il modulo A ha configurazioni opzionali che richiedono il modulo B, ma A viene installato prima e B solo successivamente, allora la cartella config/optional del modulo A verrà analizzata al momento dell’installazione di B e le configurazioni opzionali verranno applicate allora. Se il modulo B non viene mai installato, l’elemento di configurazione opzionale non sarà mai applicato.
Archivio della configurazione attiva
Per impostazione predefinita Drupal 8 salva la configurazione attiva nel database, per motivi di prestazioni e scalabilità. Vedi «La configurazione attiva predefinita» per ulteriori dettagli sul passaggio dallo storage file allo storage DB.
Aggiornare la configurazione da YAML al database
Se durante lo sviluppo hai bisogno di aggiornare la configurazione da YAML al database, puoi usare il comando drush config-import (cim).
Modifica il file YAML di configurazione nella cartella di sincronizzazione definita in settings.php (ad esempio sites/default/files/config_6dh1U_2YKLGrrh5oLxAgobbledygook/sync), quindi esegui drush cim. Pulisci le cache (drush cr) per vedere i cambiamenti.
Se sei soddisfatto delle impostazioni nel file YAML, puoi copiarle nel tuo modulo o tema.