2013-02-15 9 views
5

Ho imparato come programmare le app utilizzando il framework Mojolicious e sono perplesso sul motivo per cui si utilizzano i nomi delle route. Ad esempio un percorso potrebbe direQual è lo scopo del nome di una rotta in mojolicious?

$r->route('/cities/new') 
     ->via('get') 
     ->to(controller => 'cities', action => 'new_form') 
     ->name('cities_new_form'); 

Ma qual è lo scopo del parametro nome? Sono nuovo ai framework web, quindi forse questo ha una risposta banale.

risposta

16

Assegnare un nome al percorso consente di fare riferimento in un secondo momento se si desidera generare un URL in modo dinamico. Con il vostro esempio, si potrebbe fare questo più avanti nel codice:

my $link = $self->url_for('cities_new_form') 

e $link sarebbe automaticamente essere popolato con un URL che termina con /cities/new. Puoi essere fantasioso se il tuo percorso ha parti dinamiche. Per esempio:

$r->route('/cities/:cityname') 
    ->via('get') 
    ->to(controller => 'cities', action => 'new_form') 
    ->name('cities_new_form'); 

Quindi è possibile generare un URL del tipo

my $link = $self->url_for('cities_new_form', cityname => 'newyork'); 

E $link finirebbe con /cities/newyork.

Questi sono esempi banali, ma è possibile creare materiale abbastanza complesso una volta che i percorsi saranno più coinvolti.

Se non si specifica il percorso, viene visualizzato un nome predefinito che è solo una concatenazione dei caratteri alfanumerici al suo interno. Questo può essere noioso per i lunghi percorsi in modo da poter usare i nomi per abbreviare.

Vedere anche Named Routes nella documentazione di Mojolicious.