Dopo aver aggiornato il framework dalla versione 5.1 alla 5.2, è giunto il momento di passare alla 5.3 che è l'ultima versione del framework, pubblicata il 23 agosto del 2016.
Laravel Scout
La principale novità è rappresentata da Scout, un pacchetto addizionale rilasciato dalla community di Laravel in grado di integrare i model del framework
con un motore di full text search.
Al momento l'unico driver disponibile è quello per integrarsi con Algolia, un servizio remoto per le ricerche full text, ma grazie alla facile integrazione
è possibile implementare il proprio engine o utilizzare quelli disponibili sui repository di composer (ne sono presenti alcuni che utilizzano Elastic Search, Lucene o Solr).
Laravel Passport
Un secondo pacchetto addizionale ma ufficiale è Passport, utile per implementare rapidamente autenticazioni OAuth 2; perfetto per quelle
applicazioni sviluppate come API che richiedono un motore di autenticazione efficiente, granulare e soprattutto standard.
Mailables e Notification
Il motore interno delle email è stato in gran parte rivisto grazie all'introduzione dei Mailables, oggetti specializzati che rappresentano un modello dati inviabile
via mail. La novità permette di spedire mail sfruttando un pattern più object-oriented del precedente e utilizzando i code standard di Laravel.
Oltre alle modifiche al gestore interno di email, Laravel 5.3 introduce anche un'astrazione dedicata al concetto più ampio di notifiche inviabili non solo
via mail, ma anche tramite SMS o messaggi di testo. Per eventuali nuove implementazioni di canali di notifica è stata istituita anche una community dedicata
ad eventuali moduli addizionali: il Laravel Notification Channel.
Laravel Echo
Echo è un pacchetto Javascript perfettamente integrato con i servizi backend in Laravel, utile per implementare un sistema ad eventi client/server.
E' installabile tramite NPM come un normale pacchetto Javascript e offre un'API consistente per inviare ed ascoltare eventi al server sfruttando
la tecnologia WebSocket.
Variabile $loop
Utilizzando la nuova versione del framework avremo a disposizione una nuova variabile $loop
all'interno dei cicli nelle viste blade. Essa
contiene informazioni sullo stato dell'iterazione per rendere più semplici alcune operazioni ordinarie. Per esempio possiamo accedere all'indice corrente (tramite la
proprietà index
) o allo stato dello step corrente (tramite le proprietà first
e last
).
Nuova struttura delle cartelle
La modifica più apparente è sicuramente quella che ha impattato le cartelle del framework. Le rotte sono state spostate al di fuori della cartella app/
in modo
da essere compatibili agli standard PSR in merito ai namespace e alla struttura di cartelle in un progetto PHP. Inoltre sono state rimosse alcune cartelle di default
vuote che ora verranno create solamente se richieste (per esempio Jobs
, Events
o Policies
).
Modifiche minori
Oltre alle modifiche particolarmente impattanti descritte sopra sono state introdotte una serie di migliorie di minor rilevanza:
- nuovo helper
cache
per accedere o modificare i valori in cache senza utilizzare la facade Cache; - la possibilità di modificare il paginatore di default di Laravel;
- modifica ai metodi di Query Builder che ora restituiscono una Collection invece di un semplice array PHP.