![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 16.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Grzebie troche w tym php i tak się zastanawiam teraz jak rozwiązać problem generowania URL. Wymyślilem sobie takie rozwiązanie, że w klasie akcji będzie definiowane jakie parametry aktualnie przekazane w zapytaniu będą potrzebne do wygenerowania nowego url-a. np. numer strony, rodzaj sortowania, itp. No i teraz moje rozterki bo wypadalo by z widoku wywołać metode tworzenia url-a i trzeba by podać nazwę akcji, co mi sie nie wydaje odpowiednie dla widoku. Z koleji zrobienie tego w każdej innej warstwie niepotrzebnie tylko będzie generować dane, bo tylko widok wie czy i jaki url będzie potrzebny. Tak konkretniej to to chcialem w widoku dac cos ala: FrontController -> GetURL(Model, ...) no i wypada podac nazwe akcji Jakoś nie mogę sensownego rozwiązania wymyślić. W związku z tym proszę o pomoc i rozgrzeszenie:) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 367 Pomógł: 10 Dołączył: 20.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Generowanie URL powinno odbywać się w Routerze, to router odczytuje dane z URL wiec to router powinien też je generować.
Ustalasz sobie w jaki sposob przekazujesz parametry i tworzysz klase routera. Np mozesz zrobic ze ?action=cos&where=news&what=edit routera odczytuje akcje cos, gdzie 'news' co 'edycja' a dispatcher ma za zadanie polaczyc (include) odpowiednie klasy i wczytac odpowiedni pliczek funkcje ktora je wszystkie wykona.... Tak ja to widzę |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 16.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Może się trochę bardziej rozpisze.
A jak rozwiązać sytuację gdy np mamy widok news-y, kalendarz i navigator stron, przy czym wyświetlane newsy zależą od wybranej daty w kalendarzu jak i wybranej strony w navigatorze. Zmieniając stronę należy uwzględnić aktualnie wybraną datę. Czyli nie sprowadza sie to do prostego przypadku podania widoku i akcji do wykonania. Ten post edytował szuset 20.10.2006, 14:34:50 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 367 Pomógł: 10 Dołączył: 20.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Newsy, Kalendarz, Navigator stron to sa Modele nie są intergralną częscią FrameWorku tylko jego rozszeżeniem. Każde wywołanie strony wiąże się z przekazaniem url do routera, router pobiera dane ktore sa potrzebne
do dispatchera, dispacher wczytuje odpowiedni sterownik dla danej akcji, sterownik to np funkcja switch ktora przechwytuje zmienne z routera (GET) i dolacza kolejne modele z odpowiednimi parametrami.... FrameWork daje Ci mozliwosc latwiejszego budowania stron, ale to ty budujesz recznie sterownik ktory uruchamia dane akcje, przeciez FrameWork nie zrobi za Ciebie wszystkiego nie bedzie wiedzial jakie masz funkcje w Modelu i jakie ma podac parametry, czesc kodu musi zostac napisana na zasadzie sterownika dla danej akcji pobierajac odpowiednie parametry. sterownik.php?action=news&nawigator=32
Cos na tej zasadzie.... Ten post edytował eai 20.10.2006, 14:51:42 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 487 Pomógł: 7 Dołączył: 7.01.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
http://trac.agavi.org/browser/trunk/src/ro...uting.class.php
http://trac.agavi.org/browser/trunk/sample...fig/routing.xml Czytajcie, a znajdziecie, czy też uczcie się od najlepszych (Agavi?). -------------------- Łukasz Dywicki
Independent Java and open source software consultant. Blog - Java, OSGi, integracja oprogramowania.. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
Osobiście wole takie rozwiązanie: http://ociu.pl/view.dll/39
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.06.2025 - 20:40 |