![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 11 Dołączył: 2.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Chciałbym zapytać jakie Waszym zdaniem rozwiązanie byłoby najlepsze : 1. klasa FrontController sprawdza $_SERVER['QUERY_STRING'] i $_SERVER['PATH_INFO'] i w zależności od tego które wywołanie wystąpiło tworzy obiekt jednej z klas -> RouterStandard lub RouterNice 2. Klasa Request zajmie się "rozpoznaniem" a FrontController pobierze sobie nazwę -> $this->request->getRouterClassName(); 3. Stworzyć jedną klasę Router (niczym w CodeIgniter) która sama sobie sprawdzi i uruchomi jedną ze swoich metod (albo do standarowych urli albo do nice) 4. Utworzyć klasę Router która tylko sprawdzi $_SERVER['QUERY_STRING'] i $_SERVER['PATH_INFO'] i utworzy obiekt bądż RouterStandard bądź RouterNice. 5. Może jeszcze inne rozwiązanie ? Z góry dziękuję za wszelkie odpowiedzi. Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 338 Pomógł: 2 Dołączył: 4.03.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
To my rozmawiamy o Routerze, czy o Request?
Cytat Router - nie zawsze występuje we frameworku, ponieważ nie jest on niezbędny. Jego zadanie polega na przyjęciu żądania i wyznaczenie na jego podstawie nazwy docelowego modułu. Np. dla adresu www.example.com/user/delete router może wyznaczyć kontroler User i akcję Delete. Routery najczęściej stosuje się w celu przyjaznych URLi. Cytat Request - obiekt będący otoczką na dane wejściowe do aplikacji - GET, POST, COOKIE itp. Dobrze napisany request wyręcza programistę i w dużej mierze dba o bezpieczeństwo aplikacji. Np. request może automatycznie usuwać białe znaki z początku i końca danych i dodawać slashe (addslashes()). Jezeli we front kontrolerze rejestrujesz request, to troche mija sie to z celem. Request operuje na tablicach globalnych, wiec nawet singletone nie jest potrzebny. Gdzie potrzebujesz robisz "new Request;". A co do duzych i malych index.php - dodatkowe 5 linii chyba nie jest przestepstwem. Ten post edytował Prph 12.09.2007, 22:55:13 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 12:23 |