![]() ![]() |
Post
#21
|
|
|
Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%)
|
@J4r0d Idac wskazowkami @mike_mech rowniez polecam rozejrzec sie po zrodlach SF odnosnie budowy class do akcji. Sa 2 mozliwosci 1 akcja, 1 klasa, 1 plik. Lub wiele akcji, 1 klasa, 1 plik (oczwiscie tutaj jest to uzaleznione od modulu).
|
|
|
|
Post
#22
|
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%)
|
Jeszcze raz przeglądałem tematy na tym forum dotyczące budowania kontrolera i czytałem m.in. takie wypowiedzi niektórych użytkowników: "Tu powinieneś zastosować forward() zamiast redirect()"
Czym w takim razie (chodzi mi o sposób implementacji) różni się redirect() od forward() ? Przecież oba opierają się o header() |
|
|
|
Post
#23
|
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%)
|
Mylisz się redirect() to jest przekierowanie przez header, czyli następuje przeładowanie na następną stronę.
Natomiast forward jest wirtualne, bez przekierowania, jedna akcja wywołuje następną. |
|
|
|
Post
#24
|
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#25
|
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%)
|
wyglada to mniej wiejcej tak $this->forward('modul', 'akcja', 'parametry'). Tak jest to u mnie zrobione.
|
|
|
|
Post
#26
|
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%)
|
Ok jeszcze jedno: forward i redirect powinno być w kontrolerze czy routerze?
A jak masz redirect? $this->redirect($url) ? |
|
|
|
Post
#27
|
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%)
|
|
|
|
|
Post
#28
|
|
|
Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków |
No nie wiem, dla mnie forward jest w kontrolerze, a reditect w Response (wysyłanie nagłówka).
|
|
|
|
Post
#29
|
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%)
|
Teoretycznie tak, ale praktycznie jest lepiej w controlerze. Ew. w kontrolerze mozna zrobic nakladke na response (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
|
Post
#30
|
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%)
|
Moim zdaniem (i nie tylko moim bo tak jest w Mojavi, Agavi, Symfony a nawet w CakePHP) controller jest odpowiedzialny zarówno za redirect jak i za forward.
Jest to dla mnie całkowicie naturalne. forward jets to przerzucenie się na inną akcję podczas tego samego żądania a redirect jest to przeskoczenie na inną akcję z wykonaniem kolejnego żądania. Nie jest to do końca zwrócenie responsea (pomimo tego że wymaga to zwrócenia nagłówków). Obie powyższe decyzje są decyzjami, które powinien podjąć kontroler i to on powinien się tym zająć. Za tym rozwiązaniem stoi chmara developerów i jest to rozwiązanie stare i sprawdzone. Nie widzę tu nic nad czym trzeba debatować (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
|
Post
#31
|
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%)
|
@mike_mech: Zgadzam sie. Ale jesli mamy klase typu response która zarzadza w jakis tam sposób wysylanymi nagłowkami to takie redirect() powinno być nakladką na taką klase.
|
|
|
|
Post
#32
|
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%)
|
@mike_mech: Zgadzam sie. Ale jesli mamy klase typu response która zarzadza w jakis tam sposób wysylanymi nagłowkami to takie redirect() powinno być nakladką na taką klase. Dokładnie. Też twierdzę że technicznie powinien to być mechanizm wykonywany przez Responsea a tylko ewentualnie uruchamiany przez Controllera.Powinien pójść nagłówek z kodem 302 i wszystko jasne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
|
Post
#33
|
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%)
|
@mike-mech: co robi metoda $this->getContext() ?
Jak wygląda metoda clearHttpHeaders() i setHttpHeaders()? |
|
|
|
Post
#34
|
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%)
|
Powyższa funkcja to tylko przykład, który miał mniej więcej zobrazować to co się dzieje. Jest to część fragment klasy sfWebController z Symfony.
Po szczegóły odsyłam do sfWebResponse (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
Post
#35
|
|
|
Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków |
Pewnie jak w większości frameworków:
(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Oczywiście nazwy mogą się różnić. A co do dyskusji. Imho, nie ma nad czym się rozwodzić. Interpretacji jest tyle, ilu programistów. Każdy robi po swojemu. |
|
|
|
![]() ![]() |
|
Aktualny czas: 4.12.2025 - 12:54 |