By info@ediscere.it |

Architettura di un sito Drupal 9.0

Cosa succede quando si accede ad una pagina WEB di un sito DRUPAL 9?

definiamo innanzitutto il concetto di routing che deriva direttamente dal framework synfony su cui si basa Drupal 9. Il sistema di routing è un cambiamento molto importante introdotto in Drupal 8.

Quando l'applicazione web riceve una richiesta, chiama un'azione del controller per generare la risposta. La configurazione del routing definisce l'azione da eseguire per ogni URL in ingresso. Fornisce anche altre funzionalità utili, come la generazione di URL seo-friendly.

Le route possono essere configurate in YAML, XML, PHP o utilizzando attributi o annotazioni. Tutti i formati offrono le stesse caratteristiche e prestazioni.

Inoltre le Entity sono diventate un modo molto potente di modellare dati e i contenuti in Drupal. Il tipo di Entity più famoso è sempre stato il nodo, ed è stato storicamente la componente principale dell'archiviazione e della visualizzazione dei contenuti. Da Drupal 8, l'intero sistema di Entity è stato rinnovato per rendere tutti gli altri tipi di Entity potenzialmente altrettanto importanti.

Tutti i tipi di Entity possono avere  diverse varianti dello stesso tipo di Entity e possono avere campi diversi su di essi (condividendo alcuni campi di base).

Il core di Drupal viene ancora fornito con il tipo di entità nodo, con alcune carianti come Basic Page e Article. Inoltre, viene fornito con alcuni altri tipi di entità, come user , comment e file e così via. Comprendere il sistema di entità è indispensabile per lo sviluppo in Drupal perché fornisce un modo potente per modellare i dati e i contenuti personalizzati.

  1. Un utente accede all'URL http://myhost.com/node/123 in un browser web.
  2. Il browser contatta il server web su myhost.com e richiede la risorsa su /node/123.
  3. Il server web riconosce che la richiesta deve essere gestita da PHP e avvia (o contatta) l'ambiente PHP per gestire la richiesta.
  4. PHP esegue il file del front controller di Drupal (index.php), che quindi crea un nuovo oggetto request dalla risorsa richiesta.
  5. Il kernel HTTP di Symfony gestisce questo oggetto richiesta inviando un numero di eventi, come
    • kernel.request,
    • kernel.controller,
    • kernel.response
    • kernel.view
  6. Il percorso che mappa a quella richiesta viene identificato tramite l'evento kernel.request.
  7. Il controller del percorso viene identificato e l'evento kernel.controller viene utilizzato per eseguire qualsiasi modifica sul controller responsabile, questo percorso viene registrato dal modulo node attraverso il sistema principale di Entity, che identifica l'ID entità, lo carica e costruisce il markup da restituire come parte della risposta.
  8. Se il rispettivo controller (o gestore) restituisce qualcosa di diverso da un oggetto risposta, viene inviato l'evento kernel.view per verificare se esiste del codice che può trasformarlo in un oggetto risposta. Nella maggior parte dei casi, i controller in genere restituiscono array di rendering, che vengono trasformati in oggetti di risposta.
  9. Una volta creata una risposta, il front controller la restituisce al browser e termina la richiesta.