![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 742 Pomógł: 0 Dołączył: 14.12.2003 Skąd: Gdańsk, Trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
Router to obiekt który rozbija żądanie i wyciąga z niego nazwę żądanej akcji, parametry itp. Router jest także generatorem linków (np nice urls)
HttpRequest jest obiektem, bedącym otoczką dla żądania http. I teraz moje pytania: 1. Czy HttpRequest powinien by jednocześnie routerem: Kod --- klient --- czy router powinien byc oddzielny analizowac dane z httpRequest i na tej podstawie stwierdzac, którą ma akcję uruchomic:--- HttpRequest i Router w jednym --- --- kontroler - pobiera nazwe akcji z Routera --- Kod --- klient --- ?--- HttpRequest --- --- Router - analizuje HttpRequest sprawdzająca jaka akcja ma byc uruchomiona --- --- Kontroler - pobiera z routera nazwe akcji --- 2. Jeżeli ta pierwsza opcja to gdzie tu powinien by generator linków? Przecież nie za bardzo pasuje on do HttpRequest |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 23.11.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
@hawk: btw, ja bym w phiendzie dorzucil do filtrow i pluginow cos co ja nazwalem PluginAccessor:
function __get($plugin) { return PluginLoader::get($plugin); } co skraca uzycie do $this->router->costam(); Co do routera, wydaje mi sie ze najlepszym rozwiazaniem jest przekazywanie z routera do request sparsowanej tablicy z parametrami sparsowanego urla. Czemu tak? A bo wtedy wyciagamy dane wylacznie z requesta nie martwiac sie o to jak zostaly sparsowane. Fakt faktem ze musimy wtedy stworzyc w miare uniwersalny format tych danych w tablicy: np [ 0(nazwa akcji) -> test, 1(pierwszy parametr) -> 10 itd] Wprowadza to pewne ograniczenia ale i korzysci... Majac w indeksowanej tablicy parametry sparsowanego urla mozemy latwo tworzyc schematy urli. Przyjmujemy ze 1 parametr to zawsze nazwa akcji, a potem juz akcja decyduje czym sa kolejne parametry. Wg mnie nie powinnismy nigdy wyciagac bezposrednio z routera danych. To co router sparsuje powinno zostac polaczone z danymi z request z priorytetem na dane routera. W koncu router przydaje sie wylacznie przy zapytanaich typu HTTP i ewentualnie do sprawdzenia ip klienta / przegladarki itp. Przy requestach ala xml-rpc czy soap, router jest praktycznie zbyteczny. Pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 02:48 |