Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zasady pisania na forum Pro

Tematy na forum Pro mogą zakładać jedynie moderatorzy. W otwartych tematach może pisać każdy, kto ma coś fachowego do powiedzenia. Wszystkie posty nie wnoszące nic do tematu będą natychmiast usuwane, a ich autorzy dostaną ostrzeżenie.
Jeśli uważasz, że jakiś temat jest warty dyskusji na tym forum, zgłoś go w temacie Propozycje.

> Routery i sposoby routingu, Czyli jak to zrobić wydajnie, a się nie narobić
kwiateusz
post
Post #1


Admin Techniczny


Grupa: Administratorzy
Postów: 2 072
Pomógł: 93
Dołączył: 5.07.2005




Zgłoszono zapotrzebowanie na taki temat więc tworzę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Myśl przewodnia: "W jaki sposób tworzyć routery na potrzeby naszych aplikacji, jakie są wydajne a jakie nie. Jakich używać a jakich nie używać."
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tomahawk
post
Post #2





Grupa: Zarejestrowani
Postów: 74
Pomógł: 1
Dołączył: 5.02.2007

Ostrzeżenie: (0%)
-----


Pozwolę sobie odkopać temat.

Jak proponujecie przekazywać parametry z url do metody akcji?
Jako tablicę np. $c->akcja($params); Czy może $c->akcja($id,$page); ?

I zależnie od wybranego sposobu jak proponujecie rozwiązać problem error 404?
Bo jeżeli mam url: /c/akcja/id/page to jest ok. Natomiast jeżeli ktoś dopisze /c/akcja/id/page/costam/costam2/ to w jaki sposób rozpoznać że strona nie istnieje? Bo można by w każdej metodzie-akcji zdefiniować ile powinna mieć parametrów i liczyć ile jest parametrów wejściowych... No ale to trzeba by było to samo w każdej akcji klepać.

Acha... mówię o przypadku routingu niestatycznego kiedy nie mamy w tablicy zapisanych tras. Bo jak ma się trasy to wystarczy sprawdzić czy któraś pasuje i jak żadna nie pasuje to 404.

Ten post edytował tomahawk 1.08.2010, 21:08:32
Go to the top of the page
+Quote Post
bmL
post
Post #3





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


Cytat(tomahawk @ 1.08.2010, 21:36:41 ) *
Pozwolę sobie odkopać temat.

Jak proponujecie przekazywać parametry z url do metody akcji?
Jako tablicę np. $c->akcja($params); Czy może $c->akcja($id,$page); ?

I zależnie od wybranego sposobu jak proponujecie rozwiązać problem error 404?
Bo jeżeli mam url: /c/akcja/id/page to jest ok. Natomiast jeżeli ktoś dopisze /c/akcja/id/page/costam/costam2/ to w jaki sposób rozpoznać że strona nie istnieje? Bo można by w każdej metodzie-akcji zdefiniować ile powinna mieć parametrów i liczyć ile jest parametrów wejściowych... No ale to trzeba by było to samo w każdej akcji klepać.

Acha... mówię o przypadku routingu niestatycznego kiedy nie mamy w tablicy zapisanych tras. Bo jak ma się trasy to wystarczy sprawdzić czy któraś pasuje i jak żadna nie pasuje to 404.

Ja osobiście chwalę sobie przekazywanie jako parametry metody czyli:
articles/view/What_about_routing/5/2
wywołało by $articlesController -> view('What_about_routing', 5, 2);

Oczywiście warto też zrobić tak żeby example.com/articles wywołało np. $articlesController -> main(); (IMG:style_emoticons/default/smile.gif)
  1. private function view($articleName, $articleCategory, $articleID)
  2. {
  3. ...
  4. }

dzięki temu metoda kontrolera staje się czytelna a parametry tejże metody dodatkowo można zgrabnie opisać phpdoc jako @param. Jedyny minus to to że articleName (które dopisaliśmy do adresu tylko po to żeby google ładnie indeksowało) jest nie potrzebnie przekazywane. Ale po 1. jest to mały minus a po 2. nie zawsze wrzucamy do adresu takie rzeczy.

Co do rozpoznawanie czy strona nie istnieje, to czy na prawdę musimy to robić? Kto przy zdrowych zmysłach będzie tam próbował coś dopisać? (IMG:style_emoticons/default/smile.gif) Tylko ewentualnie jakieś próby hackingu. Wychodzę z założenia że jeżeli zdarzenie nie jest czymś co normalny użytkownik robi to nie ma co się trudzić z jego obsłużeniem. Na upartego trzeba by było do każdej metody dopisywać coś w stylu:
  1. if(func_num_args() > X) // strona nie istnieje
Go to the top of the page
+Quote Post

Posty w temacie
- kwiateusz   Routery i sposoby routingu   21.07.2008, 09:31:30
- - eai   Przeglądając framework Zenda, system Rutowania opa...   21.07.2008, 10:04:26
- - Cysiaczek   Mam prośbę: czy mógłbyś wykonać miarodajne testy n...   21.07.2008, 15:46:24
- - eai   To były testy w pętli for i <= 100, robiłem tes...   21.07.2008, 15:49:12
|- - Sedziwoj   Cytat(eai @ 21.07.2008, 16:49:12 ) To...   23.07.2008, 09:58:10
- - SHiP   Ja swój router oparłem o dynamiczne dobierani...   31.07.2008, 10:41:15
|- - bigZbig   Cytat(SHiP @ 31.07.2008, 11:41:15 ) ....   21.10.2008, 18:33:01
- - Sedziwoj   @SHiP Wiesz, można mieć tak że jest obiekt który t...   31.07.2008, 14:06:06
- - splatch   Bardzo dobry routing posiada Agavi, opis w dokumen...   9.09.2008, 08:02:23
- - jarek_bolo   W Kohanie integrują Routing oparty na tym: http://...   9.09.2008, 15:26:44
- - Sedziwoj   @bigZbig Nie chodzi o to aby wykorzystywać wi...   21.10.2008, 22:51:19
|- - bigZbig   Cytat(Sedziwoj @ 21.10.2008, 23:51:19...   24.10.2008, 14:46:52
|- - Sedziwoj   Cytat(bigZbig @ 24.10.2008, 15:46:52 ...   27.10.2008, 10:38:42
- - Sh4dow   Nie wiem ale czasami takiego sposobu rozwiązywania...   22.10.2008, 10:04:23
- - Moli   W temacie ostatnio nikt nie pisze, więc opiszę w j...   29.12.2008, 21:39:15
- - wlamywacz   No i może ja swój router opiszę. Zasada jego dział...   30.12.2008, 15:01:24
- - bim2   To może ja zapodam już gotowy Router. Pe...   13.01.2009, 23:25:59
- - bigZbig   @bim2 Widze, że coś podobnego do rootera w Zend Fr...   13.02.2009, 15:09:52
- - bim2   W sumie można dopisać do tych confingu które położ...   13.02.2009, 15:53:11
- - Helid   Najpraktyczniejszym rozwiązaniem jest już powyżej ...   10.02.2010, 19:01:33
- - tomahawk   Pozwolę sobie odkopać temat. Jak proponujecie prz...   1.08.2010, 20:36:41
|- - bmL   Cytat(tomahawk @ 1.08.2010, 21:36:41 ...   15.10.2010, 00:18:58
- - NuLL   1. W mojej opinii dane z routingu powinno sie wyko...   2.08.2010, 20:29:54
- - Ormin   A teraz coś innego , hasło Router, ale nie chodzi ...   2.09.2010, 17:59:38
- - hind   ja u siebie mam rozwiązane to w ten sposób że do k...   15.10.2010, 09:15:35
- - Crozin   CytatJedyny minus to to że articleName (które dopi...   15.10.2010, 14:28:21
- - bmL   Będę musiał sprawdzić jak to jest dokładnie zrobio...   15.10.2010, 15:05:59
- - mrWodoo   Mój router http://wklej.to/UbZca Klucz zabezp. - 1...   2.05.2013, 14:47:24
- - em1X   Cytat(mrWodoo @ 2.05.2013, 15:47:24 )...   19.10.2013, 00:08:43


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: 29.12.2025 - 22:01