Post
#1
|
|
|
Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 |
Na początek sory za temat ale nie bardzo wiem jak to nazwać. Nie wiem jak rozwiązać mój problem, a mianowicie mam index i chce zrobić menu (w indexie), ewentualnie część prawą, lewą i jakąś stopkę i tu moje pytanie jak wy to rozwiązujecie w waszych frameworkach. Najbardziej bym chciał mieć np application.Controller.php (w nim zawarte jakieś akacje odnośnie indexu) i inne kontrollery, np news.Controller.php, ogolnie chodzi o to jak includować newsController w applicationController. Ja widze tylko takie rozwiązanie: w odpowiednim miejscu w pliku z szablonem wstawić coś typu
Kod forward ('controller', 'akcja') ale takie rozwiązanie nie bardzo mi się podoba, tak samo nie chciałbym dzielić indexu na górną i dolną cześć.\ Pozdrawiam Piotrek. Ten post edytował webdicepl 29.05.2007, 11:34:57 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 487 Pomógł: 7 Dołączył: 7.01.2004 Skąd: Warszawa Ostrzeżenie: (0%)
|
Wywoływanie kolejnych kontrolerów w celu dekorowania widoku nie jest złe, ale z pewnością kłopotliwe. Zwykle filter chain jest już zainicjowany a akcja jako taka jest jego ostatnim elementem wiec dorzucanie kolejnych rzeczy wiąże się zawsze z problemami. Na przykład renderowanie dwóch różnych stron może przebiegać w następujący sposób:
Kod ... filter chain > admin > menu > footer Kod ... filter chain > frontend > menu > cart > orders > footer Menu jest stałe, ale renderowanie pozostałych elementów zależne od różnych czynników. Aby uzyskać interesujący efekt konieczne byłoby ręczne konfigurowanie łańcucha w każdej akcji, co zdecydowanie wygodne nie będzie. W Agavi, Symfony, Mojavi 4 i inne frameworki, które wywodzą się z Mojavi 2/3 a mają wyodrębnioną obsługę widoków wspierają forwardowanie akcji oraz, jak mi się wydaje, rozwiązanie Twojego problemu - mianowicie layouty. Wygląda to tak, że definiuje się układ, komponenty, które wchodzą w jego skład (menu, stopka, jakieś dodatkowe bloki) i nadaje mu nazwę - powiedzmy "front", "admin", "product", "category" i tak dalej. Każdy z nich różni się przy produktach dorzucamy od razu komentarze i galerię. W widoku danej akcji wystarczy wywołać metodę setLayout(nazwa) by zmienić układ. W sloty wskoczą wyniki wykonywania danych akcji. Logika bez zmian, widok bardziej elastyczny a i jego zmiany nie wpływają na warstwę biznesową. Forwardy są przeznaczone do wpięcia pewnego fragmentu uniwersalnej logiki - takich sytuacji jest tak na prawdę niewiele, ponieważ jeśli coś powtarza się często, powiedzmy logowanie operacji wygodniej jest to wrzucić do filtru, zatem forwardy głównie sprowadzają się do zrobienia redirecta, stąd w Agavi od wersji 0.11 forwardy nie są dostępne, w ich miejsce można robić "mini forwardy" na widoki. |
|
|
|
webdicepl [MVC] Owieranie kontrolerów w środku innego. 29.05.2007, 11:34:13
normanos layout w całość łączymy w widoku ale każdy robi j... 29.05.2007, 11:45:39
LBO W różnych frameworkach jest to różnie ro... 29.05.2007, 11:48:31
Ludvik Nie mieszałbym widoku z akcjami. Ja bym to zrobił ... 29.05.2007, 12:13:36
LBO Cytat(Ludvik @ 29.05.2007, 13:13:36 )... 29.05.2007, 12:28:07
webdicepl Dzięki Panowie, jak wrócę do domu to się będę z ty... 29.05.2007, 12:37:36
Ludvik CytatCzyli w każdym widoku, każdej akcji musimy ma... 29.05.2007, 12:43:29
Reigon Sa dwa rozwiazania,ktore przychodza mi do glowy i ... 20.06.2007, 14:27:13 ![]() ![]() |
|
Aktualny czas: 16.01.2026 - 07:09 |