09th Bře 2008
Zend Framework Router – reverse matching
Dnes jsem přepisoval routování z bootstrap souboru do config.ini. Chtěl jsem zjednodušit index.php, protože postupem času se čím dál více nafukoval a popravdě už jsem se na něj nemohl koukat :) Šlo to jako po másle, ale narazil jsem na jednu obecnou routu. V komentáři nad ní jsem byl důrazně upozorněn na její pořadí. Musí být první, protože routy jsou vyhodnocovány v opačném pořadí, než jsou přidány. Proto je nutné nejobecnější routy dávat jako první. Takže jaký controller se provede při následujícím „špatném“ nastavení, když url je „test/test2“?
routes.test2.route = test/test2
routes.test2.defaults.controller = test2
routes.test1.route = test/:moje
routes.test1.defaults.controller = test1
Ano, správně volá se test1 controller. Pro očekávané chování stačí routy prohodit.
Nechci rypat, ale to je samozrejma vec :)
Jak jsem tak četl manuál Zend Frameworku, tak to opačné vyhodnocování přiřazení je pro Zend typické, nemílím-li se, milý Watsone, že? (<- he, dobrá věta na diktát z čj)
Koukam, ze jsem jediny koho to prekvapilo. Nuze dobra Sherloci :)