Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Router - teoria
ulow
post
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&param1=... 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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
posiadacz
post
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ę:
  1. array('rule' => 'artykul,%1-%2', 'controller' => 'article', 'action' => 'show', 'params' => array(1 => 'idArticle', 2 => 'articleName')
  2. );


Najpierw sprawdzasz dopasowanie do wyjątkó, i tylko jeżeli tam nie znajdziesz dopasowania to przepuszczasz do routera standardowego.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 21:39