![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 28.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Na początku zaznaczam ze jestem początkujący w tematyce obiektowej.
Powiedzmy ze mam front controller który wybiera kontroler tworzy obiekt danej klasy i wywołuje dana metodę. Powiedzmy ze dana klasa jest controllerem newsow , a metoda pobiera 10 najnowszych newsow. Oczywście idzie zapytanie do modelu o dane i i przekazuje widokowi. I wszystko pięknie ładnie ![]() Nie wiem jak się za to zabrać. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Łańcuch akcji to wg. mnie najlepsze rozwiązanie. Poszukaj na forum - ostatnio było o tym kilka topików w oop i pro i chyba też w 'gotowe rozwiązanie' coś było.
Pozdrawiam. -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 28.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Poczytałem i rzeczywiście łańcuch akcji jest niezłym rozwiązaniem. Dodatkowo tworząc strukturę łańcucha w zewnętrznym pliku xml zyskujemy na elastyczności. Jednak dalej problem sprawia warstwa widoku korzystająca ze smarty. Pomyślałem że stworzyć singleton do którego wrzucalibyśmy dane z wszystkich metod. Singleton posiadał by metodę prywatna 'render' która tworzyła by obiekt smarty, wybierała widok, wysyłała all do szablonu i zapuszczała by display. Sama metoda 'render' była by wywoływana w destruktorze singletonu.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat Pomyślałem że stworzyć singleton do którego wrzucalibyśmy dane z wszystkich metod. Singleton posiadał by metodę prywatna 'render' która tworzyła by obiekt smarty, wybierała widok, wysyłała all do szablonu i zapuszczała by display Nie za dużo tego? ![]() Podglądnij, jak to jest zrobione w symfony. Akcje zawierają kontener (ang. parameter holder), w którym możesz zapisywać dane pochodzące z ich metod. Nie jest on żadnym singletonem - przekazywany jest do instancji klasy akcji. Po wykonaniu łańcucha akcji, cały ten kontener jest przekazywany do obiektu widoku, który może te dane przesłać dalej do szablonu. Jest to dosyć eleganckie rozwiązanie, bo zapisujesz dane w formacie niezależnym od rodzaju wyjścia. Możesz także udekorować taki kontener, jeżeli potrzebujesz dodatkowych informacji. -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 11:01 |