Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MVC] FrontController = Router?
Forum PHP.pl > Forum > PHP > Object-oriented programming
mrWodoo
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...
Dejmien_85
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.

Cytat(mrWodoo @ 30.06.2013, 20:10:10 ) *
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. ; )
Spawnm
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.