Middleware Laravel

Cosa sono i Middleware

Ritorniamo con le nostra super guide Laravel! Oggi si parla di Middleware. Cosa sono i Middleware? “I Middleware sono un meccanismo che serve a filtrare programmaticamente le richieste HTTP che riceve la vostra applicazione.”

State già usando i middleware di Laravel?

Laravel include un Middleware di default che verifica se l’utente è autenticato. Se non lo è, il Middleware reindirizzerà il visitatore alla schermata Login. Se l’utente invece lo è, alla richiesta gli sarà permesso di continuare l’esecuzione come per intenzione.

Middleware Esempi di altri usi di middleware

Un Middleware può essere usato per verificare la chiave API inclusa in una richiesta oppure per limitare il numero di richieste per secondo alla vostra applicazione, cambiare la lingua del sito,
abilitare modalità ‘under maintenance’, eccetera.

Andremo a vedere come creare, registrare ed usare i Middleware nel nostro progetto. Creeremo un Middleware per mettere in ‘Manutenzione’ certi url o l’intero progetto.

Middleware e Artisan

Per creare un Middleware possiamo usare Artisan

Il contenuto del nuovo Middleware verrà piazzato in:

app/Http/Middleware/Manutenzione.php

Noi vogliamo bloccare la richiesta. Dunque un’opzione sarebbe creare

una HttpException con codice 503.

Questo ci garantisce che Laravel restituirà la view resources/views/errors/503.blade.php

Adesso che il Middleware è stato configurato, dobbiamo far sapere all’applicazione che il Middleware esiste.

Tale processo avviene in app/Http/Kernel.php,

Se vogliamo eseguire sempre il Middlware, lo dobbiamo piazzare nell’array $middleware del Kernel

In questo caso l’utente vedrà sempre il messaggio di manutenzione

Se vogliamo eseguire selettivamente il Middleware ed attivarlo solo per certe routes, lo dobbiamo inserire nell’array $routeMiddleware del Kernel, con nome e path FQDN della classe.

Prendiamo l’esempio del post

Adesso per allacciare un Middleware a questa route in particolare

Per allacciare più Middleware ad una route

Per allacciare più Middleware ad un gruppo di routes

E se non volessimo usarle nel file delle routes bensì nel controller invece per un controllo più granulare?

Solo su certe routes:

A tutte le routes, eccetto alcune:

A questo punto, se la guida ti è piaciuta e se pensi che possa essere opportuno per te procedere nello studio approfondito di Laravel, condividi sul tuo profilo Facebook questa guida, scrivi a   amministrazione@laramind.com  e ottieni il 10% di sconto sul corso Laravel Online oppure sul Corso Laravel Advanced in partenza a Marzo/Aprile 2018!

Leave a reply