Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 1 Dołączył: 24.06.2010 Skąd: Sopot Ostrzeżenie: (0%)
|
Hej,
mam dwa koncepty na pisanie aplikacji, ale właściwie to oba mi nie podchodzą pod gust. Koncept 1: Rozbudowany router i wyspecjalizowane kontrolery. Wygląda to tak, że router pobiera sobie PATH_INFO, rozbija na tablice i interpretuje co jest kontrolerem, co akcją, co innymi parametrami. Odpala więc odpowiedni kontroler i przekazuje mu tablicę z ustaloną akcją i parametrami. Koncept 2: Mały router, rozbudowane i „inteligentne” kontrolery. Router pobiera sobie PATH_INFO, rozbija na tablice, rozpoznaje pierwszy parametr jako kontroler i odpala go, przekazując mu surową tablicę. Dopiero kontroler ma swój mini-router, który rozpoznaje co jest akcją, co parametrem i na tej podstawie działa. Które rozwiązanie jest lepsze? Kolejne pytanie. Chciałbym, żeby aplikacja była możliwie bardzo zmodularyzowana, a więc, żeby można było wziąc klocki i na ich podstawie zbudować stronę. Takimi klockami byłby moduł menu, moduł newsów, moduł kalendarza, księgi gości, moduł reklamy, itd. Każdy moduł miałby swój kontroler i zestaw widoków. Czyli działanie aplikacji wyglądałoby tak: Chcę wyświetlić stronę z newsem, to odpalam kontroler newsów, który zajmuje się wyświetleniem newsa. Oprócz tego odpalam kontroler menu i kontroler reklamy. Każdy to niezależny klocek, który można wykorzystać na dowolnej stronie. Już o tym kiedyś pisałem. Jak jednak to zrealizować? Musiałbym kontrolerowi newsów w odpowiednim momencie kazać wyświetlić to menu, czyli kontroler musiałby albo mieć metodę render (czyli zajmować się aspektami widoku) albo zwracać w zmiennej gotowy kod HTML, który wyświetlałby dopiero kontroler, który wywołał moduł tworzenia menu... No kolejna sprawa. Mam np http://strona.com/news/4/ Czyli strona odpala kontroler News, akcja domyślna View, parametr 4 jako identyfikator newsa. Z drugiej strony mam panel admina: http://strona.com/admin/news/4/edit/ Czyli strona odpala kontroler admin, ten odpala kontroler news, itd. Czy powinienem zrobić dwa oddzielne kontrolery - jeden "kliencki" tylko z opcją wyświetlania, drugi adminowy, z edycją, itd. - czy może jeden kontroler „inteligentny”, który w zależności od kontekstu inaczej się zachowuje? Dzięki za odpowiedzi, ostatnio więcej siedzę i myślę nad koncepcją pisania niż rzeczywiście spędzam czas na kodowaniu... (IMG:style_emoticons/default/sciana.gif) |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
@Luneth: a co ma Front Controller do odpalania akcji? Poza tym nawet nie wiemy czy autor wątku ma zamiar skorzystać z Front Controllera. Od tego jak już jest Dispatcher.
|
|
|
|
MacDada [MVC] Rozbudowany router i wyspecjalizowane kontrolery? 20.08.2010, 20:41:24
Crozin Co do routera: opcja #1 - czyli "rozbudowany ... 20.08.2010, 21:04:16
Pilsener 1. Router vs controller - router to router, sam so... 20.08.2010, 21:12:57
LBO Cytat(MacDada @ 20.08.2010, 21:41:24 ... 21.08.2010, 19:19:48
Luneth Odpalać powinien IMHO Front Controller chociażby n... 22.08.2010, 00:16:25
Luneth Chodziło mi, że front controller "odpala... 24.08.2010, 00:31:32
MacDada Dzięki za odpowiedzi. Na razie swój projekt wstrzy... 24.08.2010, 15:23:12
dariuszp Wprowadź w swoją aplikację dodatkową warstwę usług... 9.09.2010, 18:21:20 ![]() ![]() |
|
Aktualny czas: 10.06.2026 - 16:55 |