![]() |
![]() |
![]()
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: 521 Pomógł: 0 Dołączył: 3.11.2003 Skąd: 3city Ostrzeżenie: (0%) ![]() ![]() |
$request->getRouter() mi nie pasuje. Bo zwykły request nie wie, co to jest router i nie powienien się tym zajmować. A jeżeli napiszemy RoutedHttpRequest extends BasicHttpRequest, to nagle okaże się, że cała idea z wymienialnym requestem wzięła w łeb, bo potrzebne są nam nowe metody w RouterHttpRequest. I nic nie da się z tym zrobić, bo AdvancedRoutedHttpRequest extends AdvancedHttpRequest, RoutedHttpRequest jest niedozwolone.
@serafin: $request->setData() jest niebezpieczne, bo nie tylko router może użyć tej metody. Niemodyfikowalny request ma swoje zalety. Czasami może to być przydatne, ale w ten sposób nie mielibyśmy możliwości zablokowania tego. @bela_666: problem nie polega na tym, jak dopasować akcję, ale co zrobić z pozostałymi parametrami podanymi w URLu. AFAIK, Cocoon też nic sensownego z nimi nie robi. Dopasowuje i tyle. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 05:23 |