Al giorno d’oggi l’utilizzo delle applicazioni web all’interno di più campi applicativi è in costante crescita.
Esse possono essere realizzate attraverso numerosi framework PHP: uno dei più importanti è sicuramente Laravel, presente per l’appunto in tantissimi nostri progetti.
In un nostro precedente articolo abbiamo visto che cosa è Laravel e come si comporta a livello teorico, ma come funziona invece a livello pratico? Quali sono i suoi componenti principali?
Laravel: come funziona e quali sono i suoi componenti principali
Nel nostro articolo Laravel viene presentato come un framework PHP open source basato sull’architettura MVC che offre un approccio semplice e intuitivo per lo sviluppo di applicazioni web.
Ma cosa significa MVC?
MVC sta per Model-View-Controller, i tre principali elementi che costituiscono un qualsiasi progetto di Laravel.
- Il Model (Modello) rappresenta la parte della logica applicativa. Qui i dati dell’applicazione vengono elaborati e gestiti attraverso anche la comunicazione con il database.
- La View (Vista) rappresenta l’interfaccia grafica, ovvero l’insieme delle pagine web con cui l’utente interagisce. Esse sono costruite sfruttando Blade, il motore di templating predefinito di Laravel, basato sull’HTML.
- Il Controller rappresenta invece la parte che funge da intermediario tra il Model e la View. Vengono gestiti gli input ed elaborate le richieste degli utenti (di default sono la visualizzazione dell’elenco di tutti gli elementi appartenenti ad un’entità, oppure la visualizzazione, la creazione, la modifica e l’eliminazione del singolo elemento) per restituire una risposta.
Vediamo un esempio
Per comprendere al meglio il loro meccanismo vediamo un semplice esempio.
Supponiamo che il nostro progetto permetta di gestire il magazzino di una cartoleria, nel quale ci sono i prodotti (Bic rossa, Bic nera, quaderno Pigna giallo, ecc..) dove ognuno dei quali appartiene a una categoria (matita, penna, quaderno, ecc..).
Questo significa che sia l’entità “prodotto” che l’entità “categoria” (che corrispondono a due specifiche tabelle nel database) possiedono ognuna un blocco Model-View-Controller con funzioni specifiche:
- Il Model di un’entità permette di gestire le relazioni con l’ altra entità (un prodotto appartiene ad una categoria, ma ad una categoria appartengono più prodotti) e di operare sui dati attraverso metodi di supporto creati dall’utente in base alle sue necessità.
- Le Viste basilari solitamente corrispondono alle principali richieste presenti nel controller precedentemente citate: pagina con l’elenco di tutti i prodotti o di tutte le categorie, pagina di creazione, di modifica e di visualizzazione (con tutte le informazioni relative) del prodotto specifico o della categoria specifica.
- Il Controller consente di fornire le informazioni da visualizzare nelle viste e di elaborare i dati ricevuti da esse. Si pensi ad esempio alla creazione di un prodotto: il controller dell’entità “prodotto” procura tutti i dati necessari (come l’elenco delle categorie per scegliere a quale di esse apparterrà il prodotto) alla vista “creazione prodotto” per eseguire l’azione; una volta che l’utente ha completato il processo il controller elaborerà tutte le informazioni ricevute .
L’uso di un’architettura MVC aiuta a mantenere il codice dell’applicazione ben organizzato, semplificando così la manutenzione e la gestione dell’applicazione nel lungo periodo. Favorisce inoltre anche la separazione dei compiti tra i membri del team di sviluppo, aumentando l’efficienza e la produttività.
Altri elementi
Ad accompagnare tutto ciò ci sono altri due elementi fondamentali per la costruzione di un progetto Laravel: le migrazioni e le rotte.
Le migrazioni sono uno strumento utilizzato per la gestione del database. Consistono in file che descrivono come creare, modificare o eliminare tabelle e colonne nel database. Sono un prezioso strumento per monitorare l’evoluzione del database nel tempo, per far sì che sia sempre sincronizzato.
ll concetto di “Routing” invece viene preso in considerazione quando si cerca di accedere ad un metodo del controller, il quale può di fornire i dati alla vista o lavorare sui dati ottenuti da essa. All’interno di un documento vengono salvate delle vere e proprie rotte le quali mettono in relazione ogni funzione del controller ad un URL specifico.
Abbiamo visto quindi come Laravel sia un framework di sviluppo web che offre una vasta gamma di funzionalità per semplificare e velocizzare lo sviluppo di applicazioni web, migliorare la sicurezza, aumentare le prestazioni e fornire un’esperienza di sviluppo più piacevole e produttiva.