Aliasy: novinka v navigaci po aplikacích
Máte ve své Nette aplikaci místo, na které často odkazuje? Nechcete přemýšlet, jaký je to presenter:action? S novinkou v Nette Application 3.2 přichází elegantní řešení, které vám práci zpříjemní. Jde o aliasy, které mění způsob, jakým přemýšlíte o navigaci.
Aliasy umožňují definovat snadno zapamatovatelné názvy pro různé
presentery a akce. Místo toho, abyste museli používat dlouhé a složité
identifikátory, můžete nyní použít jednoduchý a stručný alias.
Například místo Front:Home:default
můžete napsat jen
@home
. Nebo Admin:Dashboard:default
zkrátit na
@admin
. To vše díky nové sekci v konfiguračním souboru vaší
aplikace:
application:
aliases:
home: Front:Home:default
admin: Admin:Dashboard:default
sign: Front:Sign:in
Nemusíte přemýšlet, pod jakým presenterem je v projektu, který zrovna upravujete, administrace. Jednoduše si vytvoříte alias a pak v šabloně napíšete:
<a n:href="@admin">administrace</a>
Aliasy lze použít všude, kde pracujete s odkazy – ať už je to
v šablonách, při přesměrování pomocí redirect()
a
tak dále.
Komentáře (RSS)
meme when old guy saying „nice“
Tohle je super, jen nebylo by prehlednejsi to mit primo v routru? Proste na jednom miste.
#2 trta911 jako že by router měl metodu
setAliases([...])
nebo jak to myslíš?A parametry to umí?
#3 David Grudl Něco podobného už používám, taky to definuji jako konstantu v routeru.
const DefaultRoute = 'Dashboard:default';
Potřebuji to v routeru pro definování běžné routy:
$router[] = new Route('<presenter>/<action>[/<id>]', self::DefaultRoute);
a pak v aplikaci pro přesměrování v případě, že uživatel není přihlášen/nemá práva.
Půjde to použít i v tom routeru?
#3 David Grudl spíš než setAliases([]) jsem myslel něco jako $router->addRoute(‚dashboard‘, ‚Admin:Dashboard:default‘)->setAlias(„admin“);
#6 trta911 to by ale bylo možné vytvářet aliasy jen pro presentery/akce, které mají specifické URL a své addRoute(). Současné řešení umožňuje vytvářet aliasy pro jakékoliv presentery nezávisle na routeru, který tak může být třeba SimpleRouter.
Chcete-li odeslat komentář, přihlaste se