Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Problem z Zend_Layout
Forum PHP.pl > Forum > PHP > Frameworki
Riggs
Witam.
Zaczynam swoją przygodę z Zendem. Czytam manual, jest dość czysto i przejrzyście napisany. Jednak jednej kwestii nie mogę do końca rozgryźć ani z manuala ani z tutoriali które dość mało mówią o komponentach których potrzebuję. Ale do rzeczy.
Chcę layout o budowie mniej więcej takiej jak na szablonie:


Menu po lewej stronie może być na stałe wpisane w layout albo zrobione przez Zend_navigation z odpowiednim acl ale to mało ważne. I teraz do boxów zaznaczonych na czerwono ma być wrzucana zawartość dynamicznie generowana z BD. Wiadomo, że aplikacja przy login boxie sprawdzi czy użytkownik nie jest już zalogowany - jeżeli jest to wyświetli coś innego (np. jakieś menu do edycji profilu, PW itp), pozostałe boxy to pobieranie jakiś danych z BD, statystyk i wrzucanie ich do layoutu. Czytałem trochę o komponentach Zend_View_Helper i Zend_Action_Helper i być może one się nadadzą do tego zadania ale nie znalazłem żadnych przykładów. Mam nadzieję, że ktoś zna rozwiązanie takiego problemu i się ze mną podzieli.
Docelowo chcę używać Zend_Layout (czyli jeden plik zamiast kilkunastu takich samych widoków). Chciałbym zachować również porządek w aplikacji i odpowiednią strukturę tj. layout w katalogu layouts a helpery w katalogu /view/helpers itp.
Z góry dzięki za wszelką pomoc.
batman
Boxy zaznaczone na czerwono zrób jako helpery widoku. Szczegóły znajdziesz w dokumentacji.
Z menu nawet się nie zastanawiaj i od razu zacznij korzystać z Zend_Navigation.
Riggs
Ok, to o helperach czytałem. Tylko chyba nie do końca rozumiem ich ideę. Bo jedyne przykłady które znalazłem zdecydowanie nie pasują do koncepcji MVC. Bo jeśli np. w helperze chcę generować listę ostatnich tematów na forum to muszę do tego użyć danych z BD (i tu powinny być pobrane moim zdaniem przez Model np PostTable) i dorzucone do jakiegoś szablonu (widoku). Bo w przykładach które znalazłem w sieci kod html jest generowany wewnątrz helpera i zwracany przez return co moim zdaniem nie jest zbyt dobrym podejściem jeśli chodzi o MVC.
batman
MVC to utopia, której i tak nie uda się wdrożyć w prawdziwym projekcie, więc nie zawracaj sobie nim głowy. MVC powinno być nazywane modelem trójwarstwowym i byłoby po kłopocie.
Wracając do layoutu. Helpery w ZF możesz traktować jak mini-akcje, które wyciągają dane z bazy i pakują je do jakiegoś pliku widoku. W ten sposób prezentację będziesz miał oddzieloną od logiki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.