fbpx

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.

Drupal 8, sei mesi di sviluppo

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.

Non Perdiamoci di vista

Ricevi una mail appena esce un nuovo blog post, Iscriviti alla newsletter

Ti è stato utile questo articolo?

Un programmatore è una creatura che converte caffè/birra in codice.
Se vuoi altri articoli come questo puoi contribuire:



Close