Guida laravel 4: Introduzione alle routes per gestire il progetto

Continua la nostra guida Laravel 4, oggi vediamo che cosa sono e a cosa servono le routes di Laravel indispensabili per gestire il proprio progetto.

Sommario Guida Laravel 4

Che cosa sono le routes e a cosa servono

Come suggerisce il nome, una route è una “strada”. Per capire meglio potete pensarle come uno strumento per “smistare” letteralmente le richieste http che vegono effettuate. In un pattern di sviluppo MVC e per rendere più ordinato e logico tutto l’impianto progettuale vi consiglio di evitare di effettuare il controlling direttamente dentro la route ma di passare variabili e informazioni al controller. Il tutto risulterà più ordinato e facile da gestire (sopratutto per grandi progetti).

Ma cosa fa di fatto un route?

Partiamo dal presupposto che ogni link ha una sua struttura essenziale. Ad esempio per la vista delle categorie potremmo pensare a una struttura simile a questa:

http://tuosito.it/cat/link-nome-categoria/id

Per le pagine invece potremmo usare:

http://tuosito.it/page/nome-della-pagina/id

Per la vista del solo articolo singolo presente in una categoria invece:

http://tuosito.it/nome-articolo/id

Come avete modo di notare, anche se di fatto ogni link “reale” sarà univoco, ha anche una struttura “fissa” a seconda di quale sezione deve puntare. Ovviamente il mio consiglio è quello di pianificare PRIMA di iniziare a stendere la vostra app quale sarà la struttura generale dei vostri link.

Di fatto le routes servono proprio a definire quale pattern volete usare per i vostri link e decidere cosa elaborare e visualizzare al visitatore quando digita o segue un link.

Routes semplici

La route più semplice è già presente quando installate Laravel 4 e permette di renderizzare la home. Ecco la struttura di una routes GET (standard):

//Quando il visitatore richiede la root (home) del sito
Route::get('/', function()
{
    //Visualizza Hello World
    return 'Hello World';
});

Come avete modo di notare la struttura per dichiarare una root è semplice:

  • Route:: -> Dichiarazione standard (fissa)
  • tipo di richiesta -> può essere get, post, any
  • Pattern del link -> Lo decidete voi a seconda delle vostre esigenze e usi.
  • Funzione da renderizzare se il pattern viene identificato -> in questa sezione potete o eseguire una funzione direttamente nella route (sconsigliato) oppure passare i dati  ed eseguire un controller (consigliato) che elaborerà la richiesta e passerà il tutto a una view per renderizzare a schermo i risultati.

Ecco alcuni esempi di routes utili a capire meglio (leggi i commenti al codice per maggiori informazioni).

Route POST

Molto utile e usato per elaborare, ad esempio, link o dati passati tramite ajax.

//Se il link corrisponde al pattern cat/targetweb e viene passato via POST
Route::post('cat/targetweb', function()
{
    //Visualizza questo
    return 'Categoria: TargetWeb';
});

Route Any

Any sta a indicare che non ci importa se il link viene passato via POST o GET. In entrambi i casi elabora la richiesta.

Route::any('targetweb', function()
{
    return 'Targetweb';
});

Route HTTPS

Rende sicura via HTTPS la connessione

Route::get('targetweb', array('https', function()
{
    return 'Must be over HTTPS';
}));

[lightgrey_box] NOTA: Avrete già capito che ogni pattern – link o richiesta deve necessariamente avere la relativa route per essere “smistato” ed elaborato da Laravel. [/lightgrey_box]

In tutti questi esempi abbiamo elaborato la richiesta direttamente dentro la route specificando una function elementare. In generale la route deve però “puntare” a un controller che dovrà poi elaborare i dati (o accedere al database ad esempio). Per fare ciò dovete usare una struttura di questo tipo:

//La route punta al controller "HomeController" e all'azione "showWelcome"
Route::get('/', 'HomeController@showWelcome');

Non vi preoccupate, capirete meglio nelle prossime lezioni quando parleremo dei Controllers.

Passare variabili alla routes

Nella creazione di una webapp avrete bene presto la necessità di dover “passare” dati o variabili per elaborare delle richieste. Laravel ci permette di definire nel pattern delle routes elementi variabili in questo modo:

//Esempio: Se digitate cat/5 come url
Route::get('cat/{id}', function($id)
{
    //Output: La route visualizzerà: Route dinamica - Cat 5
    return 'Route dinamica - Cat'.$id;
});

Potete anche fare in modo che la variabile sia opzionale usando questa sintassi:

//Se non c'è la variabile ID quet'ultima assume il valore di default nullo
Route::get('cat/{id?}', function($cat= null)
{
    return $cat;
});

Filtri e cenni sulle routes avanzate

Grazie alle routes è possibile anche filtrare e smistare come meglio crediamo il flusso di richieste a seconda di determinate condizioni. Ecco un piccolo esempio introduttivo:

//Definizione della route filtrata "old"
Route::filter('old', function()
{   
    //Se il valore dell'imput age è < di 200
    if (Input::get('age') < 200)
    {
        //Reindirizza alla Home
        return Redirect::to('home');

    }
});

Altre routes utili

Routes a pattern

Route::when('admin/*', 'admin');

In questo esempio comunichiamo alla routes che non ci importa che cosa c’è dopo admin/

Forzare la pagina 404

App::abort(404);

Route private (accessibili solo se autenticati)

//Rende privata la routes
Route::group(array('before' => 'auth'), function(){
  Route::post('targetweb/admin/{id}', 'Controller@Action');
});

Download Guida completa

  • Capitolo 1: Guida Laravel 4 - Introduzione ai framework, Installazione e configurazione  
  • Capitolo 2: Guida Laravel 4 - Introduzione alle routes per gestire il progetto

Donazione libera con importo minimo di 1€ - Riceverai una mail con un link dove scaricare lo zip, il link è attivo per 2 giorni dalla data di donazione. 

 
 

Conclusioni

Se la guida ti è stata utile condividila sui tuoi social network preferiti. Se invece mi vuoi offrire una pizza effettua una donazione via paypal (trovi il form poco sopra), per ringraziarti potrai scaricare la guida completa di tutti i capitoli rilasciati fino ad oggi in formato PDF per poterla leggere ovunque vuoi. Man mano che usciranno le lezioni la guida PDF ottenuta tramite la donazione conterrà tutte le lezioni precedenti con qualche interessante aggiunta.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

200-micro-icone-minimal-gratuite
Up Next:

200 micro-icone minimal gratuite

200 micro-icone minimal gratuite