![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 160 Pomógł: 6 Dołączył: 13.01.2012 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Witam, nie rozumiem pewnej rzeczy, w niektórych aplikacjach widziałem, że jest Router, ale jest również FrontController, ale czy czasem nie jest to to samo? Jakie zadanie spełnia front controller, a jakie router? Bo z mojej skromnej wiedzy
router zbiera dane przekazane do skryptu w adresie żądania (strona.pl/kontroler/akcja/parametr1/parametr2/) i na podstawie odczytanych danych ładuje kontroler, odpale akcję z parametrami front controller - odpala kontroler z zebranych wcześniej danych przez inną klasę (http://skrypta.pl/budujemy-wlasny-framework-mvc-w-php-front-controller-i-kontrolery-pomocnicze-czesc-2/) Wiem, kretyńskie pytanie, ale trochę mi się wszystko pomieszało... -------------------- ![]() |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 251 Pomógł: 23 Dołączył: 23.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Front Controller to wzorzec projektowy. Chodzi o to, aby wszystkie żądania przetwarzać w jednym miejscu (np. przez plik index.php). Programiści tworzą przeróżne klasy implementujące ten wzorzec, wybierają różne nazewnictwo. Router słownikowo opiera się tylko na przetwarzaniu URL, ale w wielu przypadkach jest bezpośrednio odpowiedzialny za wywoływanie poszczególnych klas, metod i przekazywanie parametrów.
Routing/Router to samo przetwarzanie URL, Front Controller to wzorzec, idea. Często jednak ludzie tworzą klasy oparte (świadomie bądź nie) na idei Front Controllera i przypisują temu nazwę Routera/Routingu. W wielu przypadkach hasła Router/Routing i FrontController będą odnosić się do jednej i tej samej idei. Twoja w tym głowa, aby rozpoznać, czy gdy ktoś mówi "Router" to czy chodzi mu o sam Routing, czy o coś więcej. Na przykładzie frameworków typu CodeIgniter, czy CakePHP mogę śmiało powiedzieć, że Routerowi i Routingowi przeważnie przypisuje się coś więcej, niż tylko przetwarzanie URL, bo z tym przetwarzaniem w parze idzie nierozerwanie zmiana zachowania aplikacji. Wiem, kretyńskie pytanie, ale trochę mi się wszystko pomieszało... Tak naprawdę nie ma głupich pytań (kto pyta, ten nie błądzi) - są tylko głupie odpowiedzi. ; ) Ten post edytował Dejmien_85 1.07.2013, 17:45:14 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Zadaniem routera nie jest wywoływanie kontrolerów czy akcji, a jedynie przetwarzanie url aby dostarczyć odpowiednie dane potrzebne do wyświetlenia właściwej strony.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 02:00 |