Panoramica della configurazione (a confronto con altri tipi di informazioni)
In Drupal 8 esistono diversi tipi di informazioni:
- Content
Informazioni destinate alla visualizzazione sul tuo sito e modificabili dagli utenti: articolo, pagina base, immagini, file ecc.
- Session
Informazioni sulle interazioni dei singoli utenti con il sito, ad esempio le loro scelte correnti nei filtri delle viste. Sono dati effimeri e personalizzati per un singolo utente.
Informazioni che possono cambiare frequentemente e/o senza intervento dell’utente. Esempi: ora dell’ultimo avvio del Cron, necessità di ricostruire i permessi dei nodi, ecc.
Informazioni sul tuo sito che non sono contenuti e che cambiano raramente, come il nome del sito, i tipi di contenuto e le viste definite, ecc.
Informazioni sul tuo sito che sono già memorizzate altrove. Le cache esistono solo per accelerare il recupero dei dati. Non contengono mai dati canonici.
Informazioni di sola lettura per il tuo sito, codificate staticamente nel file settings.php.
Decidere come classificare le tue informazioni
Non è sempre chiaro se un’informazione che il tuo modulo deve salvare debba essere classificata come contenuto, stato o configurazione. Ecco alcune linee guida:
- Configurazione vs Stato: se le informazioni devono essere distribuite dal server di sviluppo a quello di produzione, probabilmente si tratta di configurazione e non di stato.
- Configurazione vs Contenuto: pensa al ruolo del costruttore del sito rispetto a quello dell’editore del sito. Se l’«editore del sito» deve poter modificare le informazioni, probabilmente è contenuto. Se solo il «costruttore del sito» deve poterle modificare, probabilmente è configurazione. Ma non è una regola assoluta.
- Configurazione vs Contenuto: considera la quantità. Se hai un grande numero di elementi, probabilmente è contenuto. Se ne avrai solo pochi, probabilmente è configurazione.
- Configurazione vs Contenuto: la configurazione tende a definire i «tipi di cose», come tipi di contenuto, vocabolari di tassonomia ecc. Ogni «cosa» all’interno del tipo è contenuto: nodo di contenuto, termine di tassonomia, ecc.
Configurazione semplice vs Oggetti di configurazione
Una delle prime decisioni quando si usa il sistema di gestione della configurazione è quale tipo di configurazione si andrà a salvare.
Configurazione semplice è più facile da implementare ed è quindi ideale per le impostazioni di base che salvano valori booleani, interi o stringhe di testo semplici. Un buon esempio è l’attivazione/disattivazione di una funzione del modulo o il nome del sito configurato dal modulo system. La configurazione semplice include anche parametri necessari al modulo per funzionare correttamente. Ad esempio, l’aggregazione JavaScript deve essere impostata come attiva o disattiva. Se manca del tutto, il modulo system non sa come comportarsi. La configurazione semplice può dipendere solo dal modulo che la fornisce. Ad esempio, system.site dipende solo dal modulo System.
Oggetti di configurazione salvano insiemi di informazioni che gli utenti possono creare ed eliminare; il tuo codice funzionerà sia che ce ne siano 0 sia che ce ne siano 100+. Esempi: stili di immagine, viste ecc. Gli oggetti di configurazione hanno un set completo di hook CRUD, che vengono attivati come per qualsiasi altro oggetto in Drupal, rendendoli ideali quando la configurazione deve essere estesa o gestita da altri moduli. Ad esempio, Views usa oggetti di configurazione per permettere ad altri moduli di fornire configurazioni (le viste stesse) durante l’esecuzione. Gli oggetti di configurazione possono avere dipendenze dinamiche. Come la configurazione semplice, dipendono dal modulo che li fornisce. Per esempio, views.view.frontpage dipende dal modulo Views, ma poiché mostra nodi, dipende anche dal modulo Node. Se viene aggiornato per mostrare solo nodi di tipo Articolo, dipenderà anche dall’oggetto di configurazione node.type.article. E così via.