Drupal 8, il mio parere dopo sei mesi di sviluppo
A giugno del 2019 ho iniziato a lavorare come back-end Developer su Drupal 8, un CMS Open Source ancora nuovo per me, a sette mesi di distanza ho voluto scrivere le mie impressioni.
Prima di quel momento avevo già lavorato con CMS Open Source, come WordPress o PrestaShop, ma Drupal era un mondo quasi nuovo per me, l’avevo usato quasi 6 anni fa, per l’inserimento di contenuti e non mi era piaciuto.
A giugno, quando me l’hanno proposto, inizialmente mi son spaventato, ma fortunatamente ho avuto piacevoli sorprese.
Una versione particolare: Drupal 8
Drupal, che da sempre si definisce un CMF e non CMS, dalla versione 8 ha introdotto nel sul core il Framework Symfony 3.2. Symfony per me è un Framework già conosciuto, nel 2015 avevo già lavorato con questa tecnologia, anche se in versione 1.4, rimanendo particolarmente soddisfatto.
Partiamo dai fondamentali
Prima di mettere le mani sul codice, ho iniziato dalla teoria. Quindi ho cercato alcuni corsi online ed alcuni libri.
Tra i corsi online ho optato per drupalize.
Invece tra i libri ho optato per:
E dopo i primi test dopo il download di Drupal.
La struttura dati
Una volta ottenute le specifiche dei primi punti del progetto abbiamo iniziato a studiare la struttura dati. Una cosa molto comoda di Drupal è che direttamente dal CMS puoi crearti i tuoi Custom Type ed i relativi field.
Quindi possiamo, direttamente da CMS, creare nuove entità o modificarne già esistesti. Per esempio se volessimo aggiungere il campo “professione” in un utente, entità nativa in Drupal, possiamo farlo direttamente dal nostro pannello di controllo.
Sempre da pannello di controllo possiamo creare le singole istanze del entità, che in Drupal vengono chiamati “Nodi”.
Stessa logica vale anche per le tassonomie, se volessimo aggiungere per esempio delle categorie o dei tag, compreso il loro dizionario, lo possiamo fare tranquillamente da pannello di controllo.
La cache di Drupal 8
Lato database, noi ci troviamo una tabella per ogni field che abbiamo creato. Se volessimo utilizzare un nodo, con tutti i suoi field, il nostro CMS si troverà davanti ad una Query composta da tanti join quanti i field. Se ragioniamo su pagine in cui lavoriamo su nodi di più entità, le query risultano molto pesanti.
Per questo problema ci viene in aiuto la cache di Drupal, che oltre a lavorare sulla vista lavora anche sulle nostre entità.
La cache di Drupal 8 è stata una grandissima sorpresa e credo che presto ci dedicherò un blog post solo per lei.
Grazie a questo, possiamo drasticamente ridurre i tempi di sviluppo lato “Model” e quindi poter dedicare più tempo allo sviluppo del Controller.
Nuove funzionalità
Dopo aver creato la nostra struttura dati arriva il momento di creare le nostre funzionalità.
Per creare nuove funzionalità, lavoro principalmente con la creazione dei moduli. Dentro i moduli posso creare delle regole di routing che portano ad i miei controller o ai miei form oppure agganciare ai tantissimi hook che Drupal mi offre.
Controller e Form
Vista la struttura yml ed i controller mi sono risentito in clima Symfony. Tramite un file creo la regola di routing in cui posso impostare:
- l’indirizzo url;
- Il controller o il form da richiamare;
- se è previsto il passaggio di variabili in Post o in Get;
- le regole di accesso;
- se la destinazione ha la cache abilitata.
Hook
Gli Hook sono molto simili a quelli di WordPress o di PrestaShop. Sono funzioni che vengono richiamate all’avvio di un determinato evento.
Alcuni degli hook più frequenti sono:
- al salvataggio di un nodo;
- al caricamento di un nodo;
- al caricamento di una pagina;
- al Submit di un form;
- creazione/update/cancellazione di un utente.
Tutto questo mi permette di creare una struttura da passare al Front End Developer.
Drupal 8 VS altri CMS
Senza dubbio Drupal, ed in particolar modo Drupal 8, è un CMS/Framework molto comodo per uno sviluppatore.
Ho parlato al WordCamp di Milano ho parlato anche di questo, mostrandone le differenze tra il metodo di sviluppo su Drupal 8 e WordPress.
Pausa caffè/birra
Un programmatore è una creatura che converte caffè/birra in codice.
Se vuoi altri articoli come questo puoi contribuire:
Offrimi un caffè
Offrimi una birra
Fonte: https://matteoenna.it/it/drupal-8-sei-mesi-di-sviluppo/
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.