Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Framework, MVC, Router, Pomysl na wykonanie przekierowania na inna akcje
Prph
post
Post #1





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam,

Powiem z gory, ze nic mi do glowy nie przyszlo przegladajac Mojavi i ZendFramework.

Obecna sytuacja przypomina troche Zend Framework.

Przychodzi żądanie HTTP. Router jest odpowiedzialny za wiciagniecie z niego informacji (jaka akcja, jakie parametry). Nastepnie tworzy token, ktory zawiera nazwe akcji oraz parametry.

Token przekazywany jest do Dispatchera, ktory ma za zadanie utworzyc obiekt akcji, przekazac mu parametry i uruchomic akcje.

Wykonanie nastepnej akcji zrealizowalem w prosty sposob. W klasie akcji definiuje metode setNext($sActionName : string [, $aParameters : array]).

Ale jak moznaby zrealizowac przekierowanie na inna akcje w przypadku niepowodzenia? Co mam na mysli?

Filtr bezpieczenstwa. Sprawdza, czy uzytkownik zalogowal sie, czy ma odpowiednie prawa. Jezeli nie to powinien przeniesc uzytkownika do logowania.

Mozna zrobic header('Location: ble ble'), ale nie podoba mi sie ta metoda.

Jakies pomysly?

Adrian.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Prph
post
Post #2





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Heh co ciekawe, W symfony wykonywana jest jedna sztuczka, ktora osobiscie bardzo mi sie nie podoba.
W przykladach bylo cos takiego (wymyslam sytacje):

wykonywana byla akcja DodajKomentarz. Na jej koncu autor chcial powrocic do PokazNews, tyle ze chcial aby to byl dokladnie ten news, do ktorego dodano komentarz. Wiec wykonal cos takiego:

  1. <?php
  2. $Request->setParameter('id', 5);
  3. $Kontroler->forward('PokazNews');
  4. ?>


To imitowanie innego zgloszenia. Nie lepiej zrobic redirect?

Adrian.

Ten post edytował Prph 25.07.2006, 22:15:39
Go to the top of the page
+Quote Post
sf
post
Post #3





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Cytat(Prph @ 25.07.2006, 23:14 ) *
  1. <?php
  2. $Request->setParameter('id', 5);
  3. $Kontroler->forward('PokazNews');
  4. ?>


To imitowanie innego zgloszenia. Nie lepiej zrobic redirect?

Adrian.


Sam takie coś robie w swoim frameworku, wg. mnie to jest fajna sprawa i wydaje mi się jak najbardziej na miejscu. Jak napisali koledzy wyżej istnieje forward i redirect więc możesz zastosować redirect jeśli Ci to bardziej odpowiada...
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 23:06