Laravel sì, ma perchè?

Laravel sì, ma perchè?

 di lettura
ICT Developer & Business Analyst Senior

In un nostro precedente articolo abbiamo parlato dell’importanza di sviluppare un’applicazione web in original content, e quanto fosse importante scegliere una “cassetta degli attrezzi” di qualità. Oggi vogliamo parlarvi del framework “la cassetta degli attrezzi” che utilizziamo per sviluppare applicazioni web: Laravel. 

Laravel è uno dei più diffusi framework PHP a livello mondiale, ed è caratterizzato da una spiccata vocazione per il web, infatti “si” auto definisce “The PHP Framework for Web Artisans”. 

Questo framework è open source, per cui non richiede il pagamento di licenze, né una tantum né periodiche. Implementa un’architettura MVC, ed ha una struttura di programmazione ad oggetti, ma, anche per il fatto stesso che è basato su PHP, non ha certo la rigidità strutturale che si riscontra in uno sviluppo java, o più in generale di un framework puramente ad oggetti. La parte modeling è di tipo ORM per essere indipendenti dal DB engine su cui ci si deve appoggiare, mentre la parte view usa il template engine Blade molto duttile.

Una volta installato viene fornito un tool, da riga di comando, chiamato “artisan”, che permette allo sviluppatore di velocizzare di molto il suo lavoro. Si possono creare classi vuote (con la sola infrastruttura), o classi pronte per fare l’override di quelle standard del framework stesso. Con questo tool, si può gestire la cache o eseguire programmi PHP che interagiscono con il sistema operativo e con la base dati, fare testing, e molte altre attività velocizzando il lavoro dello sviluppatore.

Nativamente Laravel fornisce tutta una serie di funzionalità di alto livello molto utili per lo sviluppo veloce di un applicativo web:

  • Autenticazione, per la gestione degli utenti
  • Profilazione, per poter fornire permessi diversi ad utenti diversi
  • Modeling ORM con Eloquent, per aver un’interfaccia dati slegata dal tipo di DB
  • Database Migration, progettazione ORM degli elementi del DB per poter creare l’intera struttura del database su DB engine diversi, oppure semplicemente modificarla. Questo costruendo degli appositi oggetti php e facendoli eseguire dal tool artisan, senza utilizzare un DB manager.
  • Validazione: allo sviluppatore viene fornito un set di istruzioni per definire velocemente la validazione dei dati provenienti dalle pagine web, ed eventualmente una messaggistica personalizzata. 
  • Mail e Notifiche: lo sviluppatore può velocemente realizzare funzioni di invio mail e notifiche preoccupandosi solo di fornire i dati essenziali, senza doversi preoccupare dell'infrastruttura.
  • Astrazione del filesystem: inizialmente si decide che tipo di filesystem verrà usato, se un disco rigido oppure uno storage virtuale come può essere AWS S3. Mentre lo sviluppatore ha a disposizione delle funzioni di lettura o scrittura ad alto livello che gli consentono di cambiare successivamente il supporto senza dover riscrivere il codice.
  • Schedulazione, job ed eventi: vengono fornite funzionalità necessarie per poter implementare la gestione di questi elementi senza doversi preoccupare dell’infrastruttura che sta sotto.
  • Localizzazione: viene fornito un set di funzioni che permette di gestire velocemente le lingue sia a livello di comunicazione/messaggistica che di contenuto di pagina. Se poi la si volesse anche a livello di url della pagina basta aggiungere una semplice libreria.
  • Websocket ed eventi: per poter creare dei listener per la nostra applicazione. Oppure gestire gli eventi che provengono da altre applicazioni. Oppure implementare una comunicazione client server basta su websocket.
  • Testing: permette di creare delle classi di testing che possono essere lanciate dall’immancabile tool artisan.


Quando per un progetto qualcosa manca, ad esempio permettere il login via Google e/o Facebook, con facilità si trova un’apposita libreria PHP per Laravel che vi permetterà di integrare questa funzionalità molto velocemente. Infatti questo framework ha una ricca community che rende disponibili sia una corposa varietà di librerie che una vasta documentazione su diversi canali, dalla semplice documentazione web ai video corsi gratuiti.


In aggiunta viene fornito un sistema di routing RESTful altamente personalizzabile ma allo stesso tempo molto rapido da implementare. Per non parlare dell’uso dei middleware, che permettono di pre processare una richiesta per controllare se soddisfa alcune caratteristiche. Ad esempio esiste un middleware che ci permette di evitare di inserire il codice necessario per verificare che l’utente abbia effettuato il login, all’interno di tutte quelle funzioni/metodi che possono essere eseguite solo da utenti registrati. Basta applicare il middleware di check dell’autenticazione, nel gestore del routing, a tutte le rotte che devono essere riservate ad utenti registrati, ed in caso l’utente non avesse effettuato l’accesso, il middleware dirotterà l’utente alla pagina di login per poter proseguire, e questo ti fa risparmiare molto lavoro.


Già così uno sviluppatore avrebbe quello che gli serve per realizzare un’applicazione web, ma vi sono altri due aspetti molto importanti di Laravel da considerare, la personalizzabilità e la scalabilità. Ho voluto citarli insieme perché è il loro utilizzo combinato una delle caratteristiche che più utilizziamo. Ad esempio vogliamo che il login non venga fatto attraverso una pagina dedicata come prevede lo standard, ma attraverso un popup che può comparire su tutte le pagine. Con Laravel basta fare l’override del controller di login standard, per le sole funzioni di visualizzazione e gestione della pagina di login che si vuole far diventare un popup. Mentre per le rimanenti funzionalità di gestione dell’autenticazione di basso livello ma anche più critiche, si può usare ancora lo standard, questo ci garantisce la sicurezza e la qualità di un software sviluppato e verificato da una community internazionale. Molti framework forniscono funzioni preconfezionate, ma non è possibile personalizzarle se non a livello superficiale, per cui nel caso precedente potresti al massimo cambiare la grafica della pagina di login, senza certo permettere di inserirla in un popup. Oppure se vuoi modificarle devi riscrivere praticamente l’intero codice. Con Laravel si può quasi sempre personalizzare al livello che ci è necessario, come con un set di mattoncini Lego, lo puoi realizzare come da specifiche, oppure puoi decidere di cambiare e fare una o più parti come più ti piace. 


In sostanza, Laravel, solleva lo sviluppatore dallo scrivere tutte quelle parti che tipicamente si trovano in una applicazione web, per cui basta solo personalizzare ed aggiungere le funzioni particolari che il progetto richiede. Tutto ciò si traduce in una maggior velocità di sviluppo, permettendo di concentrarsi maggiormente sugli aspetti caratterizzanti dell’applicativo, ottenendo così un risultato di qualità superiore senza essere costretti a spendere le grandi quantità di tempo e risorse, che sarebbero necessarie partendo da zero. Oppure sul versante opposto, per siti web più semplici, è possibile creare in economia ad esempio un sito con un piccolo CMS, realizzando velocemente un’area riservata dedicata dove il proprietario può gestire i suoi contenuti dinamici.

La nostra azienda ha quindi scelto Laravel per risparmiare sulla parte di sviluppo e poter dedicare maggiori risorse alla parte grafico/creativa per un risultato che garantisca il maggior gradimento possibile. Se volete avere qualche esempio basta contattarci