9.9. Gestione della configurazione in Drupal. Configurazione attiva, sincronizzazione della configurazione, trasferimento delle configurazioni da DEV a LIVE.
La configurazione in Drupal è la base per tutte le impostazioni dei tipi di contenuto, dei campi, dei moduli di configurazione e delle variabili. Grazie alla configurazione, possiamo trasferire le modifiche da un sito a un altro, sviluppare funzionalità diverse allo stesso tempo senza interferire tra loro.
Le configurazioni possono essere caricate in file YML e aggiunte al repository Git, così puoi fare il commit delle modifiche nelle impostazioni del sito e trasferire le modifiche su DEV o LIVE. L'idea della configurazione in Drupal è simile a come funziona il modulo Features:
https://www.drupal.org/project/features
Solo che i Features non sono integrati con tutti i moduli e non è sempre possibile trasferire tutte le impostazioni del sito tramite Features. La configurazione in Drupal funziona con tutte le impostazioni e consente di caricare tutto su file.
Quando installi Drupal, viene creata una cartella per caricare la configurazione. Per impostazione predefinita, è una cartella con un nome lungo, che si trova in sites/default/files
:
Il nome della cartella viene generato casualmente perché la cartella si trova nel dominio pubblico nella cartella files
che ha diritti di accesso 777. Un nome così lungo impedisce di abbinare il nome della cartella alle configurazioni da caricare. Il fatto è che le configurazioni possono contenere API, Solr, accessi SMTP e queste informazioni devono essere nascoste. Possiamo specificare il percorso della cartella di configurazione tramite il file settings.php
:
$config_directories['sync'] = 'sites/default/files/config__RPFDnw0- VygzmxgHiXPoXGNKYmjVi3mDZmP5exZX8tRleV9jXG6ZECaPRaxekelYsMCF42HwA/sync';
La cartella Sync sarà utilizzata per trasferire le configurazioni tra i siti. Drupal memorizza le configurazioni nel database per impostazione predefinita e utilizza la configurazione attiva. Puoi memorizzare la configurazione attiva in file così come nella cartella di sincronizzazione, ma è meglio lasciare la configurazione attiva nel database, così Drupal funzionerà più velocemente. Puoi visualizzare la tabella delle configurazioni con le configurazioni tramite PhpMyAdmin o Adminer:
Gli array serializzati con le configurazioni sono memorizzati qui.
Tipicamente, la cartella sync con le configurazioni è memorizzata fuori da sites/default/files
, poiché la cartella files
non è memorizzata nel git. Cambiamo il percorso della cartella di configurazione:
$config_directories['sync'] = 'config/sync';
Ora possiamo aggiungere le nostre configurazioni a Git. Puoi caricare la configurazione manualmente:
/admin/config/development/configuration/full/export
Configurazione -> Sincronizzazione configurazione -> Esporta
Se fai clic sul pulsante Esporta, Drupal visualizzerà un archivio con tutte le configurazioni. Ora puoi aggiungere queste configurazioni a Git:
Lo scaricamento manuale delle configurazioni tramite il sito non funziona sempre. Quando hai molte configurazioni, il caricamento potrebbe essere interrotto. Pertanto, è meglio caricare tramite Drush:
drush config-export
o tramite la Drupal Console:
drupal config:export
Lo stesso vale per l'importazione, può essere fatto tramite Drush:
drush config-import
e tramite la Drupal Console:
drupal config:import
Conservare le configurazioni nella root del sito non è una buona idea. È meglio conservare le configurazioni in una cartella separata modificando settings.php
:
$config_directories['sync'] = '../config/sync';
Quando stai studiando Drupal, puoi lasciare una cartella con le configurazioni così com'è nella root del sito.
Ora che hai caricato la configurazione e l'hai aggiunta a Git, puoi caricarla su un altro sito. Cambiamo qualche impostazione sul sito, come il nome del sito:
/admin/config/system/site-information
E vai alla pagina di Sincronizzazione della Configurazione:
/admin/config/development/configuration
Drupal confronta la configurazione attiva corrente dalla tabella delle configurazioni con la configurazione di sincronizzazione e se ci sono differenze, puoi vederle su questa pagina. Se fai clic sul pulsante Importa tutto, ti verrà chiesto di caricare la tua configurazione di sincronizzazione nella tua configurazione attiva nella tabella delle configurazioni. In questo modo puoi compilare le tue modifiche.