Laravel -Routing: A Beginner's Guide

Ciao là, futuri sviluppatori Laravel! Oggi ci imbarcheremo in un viaggio emozionante attraverso il mondo del routing Laravel. Come il vostro amico insegnante di informatica del quartiere, vi guiderò attraverso questo concetto fondamentale, assicurandomi che capiate ogni singolo passo. Allora, prendete una tazza di caffè (o tè, se è più il vostro thing), e tuffiamoci!

Laravel - Routing

Cos'è il Routing?

Prima di iniziare, capiamo cos'è esattamente il routing. Immaginate di essere in una grande biblioteca (Internet) e di voler trovare un libro specifico (una pagina web). La bibliotecaria (il router) vi aiuta a trovare esattamente il libro che cercate. Nello sviluppo web, il routing è come questa bibliotecaria, dirigendo le richieste web alle parti corrette della vostra applicazione.

Routing di Base

Iniziamo con le basi. In Laravel, il routing è gestito nel file routes/web.php. Questo è dove diciamo alla nostra applicazione come rispondere a diverse richieste URL.

Rotta Semplice

Ecco la forma più semplice di una rotta:

Route::get('/', function () {
return 'Ciao, Mondo!';
});

Spieghiamo questa:

  • Route::get() dice a Laravel di rispondere a una richiesta GET.
  • Il primo parametro '/' è il percorso URL (nel caso, la pagina iniziale).
  • Il secondo parametro è una funzione che restituisce ciò che deve essere inviato indietro al browser.

Quando visitate la pagina iniziale del vostro sito web, vedrete "Ciao, Mondo!" visualizzato.

Rotta per una View

Spesso, invece di restituire solo del testo, vogliamo restituire una intera pagina HTML. Laravel rende questo facile:

Route::get('/benvenuto', function () {
return view('benvenuto');
});

Questa rotta restituirà la vista benvenuto quando qualcuno visita /benvenuto. Le viste sono modelli HTML memorizzati nella directory resources/views.

Rotta con Controller

Man mano che la vostra applicazione cresce, vorrete utilizzare i controller per organizzare meglio il codice:

Route::get('/utenti', 'UserController@index');

Questa rotta dice a Laravel di chiamare il metodo index sul UserController quando qualcuno visita /utenti.

Parametri di Rotta

Ora, rendiamo le cose più interessanti. Cosa succede se vogliamo gestire segmenti dinamici nei nostri URL?

Parametri di Base

Route::get('/utente/{id}', function ($id) {
return 'Utente '.$id;
});

Questa rotta matcherà URL come /utente/1, /utente/2, ecc. Il {id} nell'URL diventa una variabile che viene passata alla funzione.

Parametri Opzionali

A volte, un parametro potrebbe essere opzionale. Possiamo gestire anche questo:

Route::get('/utente/{nome?}', function ($nome = 'Giovanni') {
return 'Ciao, '.$nome;
});

Questa rotta funzionerà sia per /utente che per /utente/Giulia. Se non viene fornito nessun nome, il valore predefinito è 'Giovanni'.

vincoli dei Parametri

Possiamo anche aggiungere vincoli ai nostri parametri utilizzando espressioni regolari:

Route::get('/utente/{id}', function ($id) {
return 'Utente '.$id;
})->where('id', '[0-9]+');

Questa rotta matcherà solo se lid è composto da uno o più numeri.

Rotte Nome

Le rotte nomeggiate consentono di fare riferimento alle rotte per nome invece del loro URL. Questo è particolarmente utile quando avete bisogno di generare URL o redirect nella vostra applicazione.

Definire una Rotta Nome

Route::get('/utente/profilo', function () {
//
})->name('profilo');

Utilizzare una Rotta Nome

Una volta che una rotta è nomeggiata, potete generare URL o redirect per la rotta come questo:

// Generare un URL...
$url = route('profilo');

// Generare un redirect...
return redirect()->route('profilo');

Questo è estremamente utile perché se mai doveste cambiare l'URL della pagina del profilo, dovrete solo cambiarlo in un solo posto (la definizione della rotta), e tutte le referenze alla rotta nomeggeranno automaticamente utilizzando il nuovo URL.

Gruppi di Rotte

Man mano che la vostra applicazione cresce, potreste trovare voi stessi applicare lo stesso middleware o prefisso a un gruppo di rotte. Laravel vi permette di raggruppare queste rotte:

Route::middleware(['auth'])->group(function () {
Route::get('/dashboard', function () {
// Richiede autenticazione...
});

Route::get('/account', function () {
// Richiede autenticazione...
});
});

Questo applica il middleware auth sia alla rotta /dashboard che a /account.

Metodi di Rotta

Laravel supporta il routing per tutti i verbi HTTP standard. Ecco una tabella di riferimento rapida:

HTTP Verb Route Method
GET Route::get()
POST Route::post()
PUT Route::put()
PATCH Route::patch()
DELETE Route::delete()
OPTIONS Route::options()

Potete anche rispondere a più verbi HTTP con una singola rotta:

Route::match(['get', 'post'], '/', function () {
//
});

Route::any('/', function () {
//
});

Ecco fatto! Avete appena compiuto i vostri primi passi nel mondo del routing Laravel. Ricordate, la pratica rende perfetti, quindi non avete paura di sperimentare con diverse rotte e vedere cosa succede.

Prima di chiudere, ecco una piccola battuta sul routing: Perché lo sviluppatore è fallito? Perché ha esaurito tutto il suo cache! ?

Buon codice, e may i vostri percorsi vi portino sempre dove volete andare!

Credits: Image by storyset