back to top

Il pattern MVC in Laravel

Nell’ingegneria del software, il pattern Model-View-Controller (MVC) è un modo per dividere il codice in tre sezioni distinte. Il modello contiene i dati e la logica dell’applicazione, la vista gestisce l’interfaccia utente e il controllore fa da mediatore tra gli altri due componenti.

Questa separazione delle responsabilità rende il codice più modulare e più facile da mantenere. Inoltre, consente ai membri del team di lavorare contemporaneamente su parti differenti del codice. Per esempio, un designer può lavorare sulla vista mentre un programmatore lavora sul controller.

Controllers

In Laravel, i controllers sono contenuti all’interno della cartella app/Http/Controllers e, come abbiamo anticipato, sono responsabili della gestione degli input dell’utente e della generazione della risposta appropriata.

Nella maggior parte dei casi, il controller riceve la richiesta dell’utente, la convalida e poi la passa ad un modello per l’elaborazione. Una volta che i dati sono stati elaborati, il controller genera l’output appropriato e lo passa alla vista.

Models

Nel pattern MVC, il modello è responsabile del recupero, della creazione, dell’aggiornamento e della cancellazione dei dati. In Laravel, i models sono contenuti all’interno della cartella app/Models.

Oltre alle operazioni CRUD di base, un modello potrebbe contenere anche altre business logics, come operazioni di casting e relazioni con altri modelli. In breve, un modello viene utilizzato per incapsulare tutta la logica necessaria per manipolare i dati.

Visto che l’argomento Model è estremamente vasto, tratteremo l’argomento in maniera più approfondita nel capitolo dedicato ad Eloquent, l’ORM di Laravel.

Per adesso, mi sento solo di aggiungere che per convenzione di Laravel, i Modelli sono dichiarati usando il nome al singolare, mentre la relativa tabella va dichiarata usando il plurale (ovviamente in inglese). È comunque possibile bypassare questo standard, valorizzando la proprietà table di ogni modello.

Views

La vista è il componente che il software utilizza per servire l’interfaccia all’utente. Per impostazione predefinita, in Laravel tutte le viste sono contenute nella cartella resources/views.

Le viste contengono HTML, gli assets JavaScript e CSS, dati dinamici che sono passati dal Controller. Laravel utilizza un proprio template engine, denominato Blade che ha una sua sintassi, molto intuitiva. Il framework le compila in codice PHP e poi le memorizza nella cache fino a quando non vengono modificate.

Pubblicità
Articolo precedente
Articolo successivo