![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 4 Dołączył: 18.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wg mnie, klasa routera powinna parsować url'e jak i je tworzyć, ogólnie wszystko co z nimi związane. U siebie, chcę zrobić to tak, że będę miał adresy postaci:
domena.pl/modul/akcja/parametr1/parametr2/parametrN Z wydobyciem modulu i akcji i wywołania tego, nie będę miał problemu, ale rozchodzi się tutaj o parametry, które będą przekazywane do akcji. W jaki sposób je rozróżniać? Skąd router ma wiedzieć który parametr jest do czego? Nie wchodzi w grę tutaj ustawianie wszystkiego w htaccess, bo nie do każdej akcji będą przekazywane parametry w ten sam sposób. No i nie chcę mieć adresów: domena.pl/?modul=foo&akcja=bar¶m1=... itd, chociaż wtedy nie byłoby problemu. Myślałem nad czymś takim jak jest w Symfony, a mianowicie pliczek routing.yml itd, ale nie mam pojęcia jak to zaimplementować (IMG:style_emoticons/default/smile.gif) Ktoś podsunie jakieś sensowne rozwiązania? Albo wskaże mi moje błędy |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 2 Dołączył: 2.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
A ja widzę to tak:
1. Router uniwersalny parsujący link: explodujesz po slashach i bierzesz: 1- kontroller, 2-akcja, i w pętli{ 3-parName, 4-parValue} 2. Dopisujesz wyjątki od reguły, np w kontrolerze article (któremu możesz również dodać alias - artykuł i wersje językowe: news) przepisujesz brak akcji na akcję show: np przez tablicę:
Najpierw sprawdzasz dopasowanie do wyjątkó, i tylko jeżeli tam nie znajdziesz dopasowania to przepuszczasz do routera standardowego. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 21:39 |