Laravel - Middleware: Il Tuo Portale per la Gestione delle Richieste
Ciao a tutti, futuri sviluppatori Laravel! Oggi esploreremo il mondo affascinante dei Middleware di Laravel. Pensa ai middleware come a una guardia di sicurezza utile per la tua applicazione - controllano e processano le richieste prima che raggiungano la logica principale della tua applicazione. Insieme intraprendiamo questo viaggio entusiasmante!
Cos'è un Middleware?
Prima di immergerci nel codice, capiremo cos'è un middleware. Immagina di organizzare una festa (la tua applicazione) e di avere un controllore (middleware) alla porta. Questo controllore può:
- Controllare se le persone sono nella lista degli invitati (autenticazione)
- Assicurarsi che siano vestiti in modo appropriato (validazione)
- Dar loro un braccialetto (aggiungere informazioni alla richiesta)
- O persino rifiutarli (interrompere la richiesta)
Questo è esattamente ciò che fanno i middleware per la tua applicazione Laravel!
Registração di Middleware
Ora vediamo come possiamo creare e registrare i nostri middleware.
Creazione di Middleware
Prima, creeremo un middleware semplice che controlla se un utente ha più di 18 anni:
<?php
namespace App\Http\Middleware;
use Closure;
class CheckAge
{
public function handle($request, Closure $next)
{
if ($request->age <= 18) {
return redirect('home');
}
return $next($request);
}
}
In questo esempio, il nostro middleware CheckAge
controlla se il parametro age
nella richiesta è maggiore di 18. Se non lo è, reindirizza alla pagina iniziale. Altrimenti, passa la richiesta al middleware successivo o all'applicazione principale.
Registração di Middleware Globale
Per utilizzare questo middleware globalmente (per tutte le rotte), dobbiamo registrarlo nel file app/Http/Kernel.php
:
protected $middleware = [
// ...
\App\Http\Middleware\CheckAge::class,
];
Registração di Middleware per Rotte Specifiche
Se vuoi utilizzare il middleware solo per rotte specifiche, puoi registrarlo come middleware di rotta:
protected $routeMiddleware = [
// ...
'checkage' => \App\Http\Middleware\CheckAge::class,
];
Poi, puoi utilizzarlo nelle tue rotte così:
Route::get('adult-only', function () {
//
})->middleware('checkage');
Parametri di Middleware
A volte, vogliamo che il nostro middleware sia più flessibile. Ecco dove entrano in gioco i parametri del middleware!
Modifichiamo il nostro middleware CheckAge
per accettare un parametro di età minima:
<?php
namespace App\Http\Middleware;
use Closure;
class CheckAge
{
public function handle($request, Closure $next, $minAge)
{
if ($request->age <= $minAge) {
return redirect('home');
}
return $next($request);
}
}
Ora possiamo utilizzare questo middleware con diversi limiti di età:
Route::get('adult-only', function () {
//
})->middleware('checkage:18');
Route::get('senior-only', function () {
//
})->middleware('checkage:65');
Non è fantastico? Abbiamo reso il nostro middleware riutilizzabile per diverse situazioni!
Middleware Terminabile
A volte, vogliamo che il nostro middleware faccia qualcosa dopo che la risposta è stata inviata al browser. Ecco dove entra in gioco il middleware terminabile!
Creiamo un middleware che 注册 la durata della risposta:
<?php
namespace App\Http\Middleware;
use Closure;
class LogResponseTime
{
public function handle($request, Closure $next)
{
$request->start_time = microtime(true);
return $next($request);
}
public function terminate($request, $response)
{
$duration = microtime(true) - $request->start_time;
\Log::info('Tempo di risposta: ' . $duration . ' secondi');
}
}
Questo middleware aggiunge un start_time
alla richiesta, poi 注册 la durata totale della risposta dopo che la risposta è stata inviata.
Per utilizzare il middleware terminabile, assicurati che sia registrato nel tuo file app/Http/Kernel.php
:
protected $middleware = [
// ...
\App\Http\Middleware\LogResponseTime::class,
];
Metodi del Middleware
Ecco una tabella dei principali metodi che utilizzerai quando lavorerai con i middleware:
Metodo | Descrizione |
---|---|
handle() |
La logica principale del middleware. Processa la richiesta e opzionalmente la passa al middleware successivo. |
terminate() |
Eseguito dopo che la risposta è stata inviata al browser. Utilizzato per pulizia o 注册. |
Conclusione
Ecco fatto, ragazzi! Abbiamo esplorato il territorio dei Middleware di Laravel, dalla creazione e registrazione dei middleware all'uso di parametri e middleware terminabili. Ricorda, i middleware sono come il coltello svizzero della gestione delle richieste - sono versatili, potenti e uno strumento essenziale nel tuo kit di sviluppo Laravel.
Mentre continui il tuo viaggio con Laravel, troverai innumerevoli modi creativi per utilizzare i middleware. Forse creerai middleware per controllare la modalità di manutenzione, 注册 le richieste o persino trasformare i dati delle richieste. Le possibilità sono infinite!
Continua a programmare, continua ad imparare e, soprattutto, divertiti! Fino alla prossima volta, happy Laravel-ing!
Credits: Image by storyset