![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Potrzebuję podzielić widok, na kilka klas. Dokładniej chcę mieć główny widok i klasy które rozszerzą jego możliwości. Nie byłoby problemu, bo mógłbym nawet dziedziczyć tylko, że potrzebuję użyć np. 3-4 rozszerzeń naraz. Przykłady rozszerzeń: - Klasa obsługująca szablony (parsowanie etc.) - Klasa parsująca bb-code - Klasa tworząca formularze Sam wymyśliłem coś takiego: Klasa widok, ma metodę:
Problem polega na tym, że używanie tak wczytanego modułu jest niewygodne, bo muszę robić to np. tak:
Od razu tutaj zaznaczę, że mam magiczną metodę __get() dlatego odwołuję się poprzez $view->template. Co w tym niewygodnego? Muszę wszystko zwracać returnami, bo inaczej nic w widoku nie zapiszę. Dokładniej:
To co mi się nie podoba, działa akurat na zasadzie wywołania __toString, który uruchamia parser template. Z template jest najmniejszy problem, gorzej z robieniem formów... Gdzie np. każdego inputa muszę zapisać do zmiennej i potem $view->save($zmiennaZinputem) Jak za słabo objaśniłem to czekam na pytania. (IMG:style_emoticons/default/haha.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 51 Dołączył: 4.02.2005 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy dobrze zrozumiałem Twój problem, ale jeśli w aplikacji istnieje "zapach" wielodziedziczenia to dekorator powinien dać radę ;] Ewentualnie możesz zrobić "złożony" widok (Composite), do którego dodajesz te widoki podrzędne o których mówisz, a widok główny deleguje zadania kolejno do każdego z widoków podrzędnych i składa wynik.
Ten post edytował -=Peter=- 10.08.2009, 12:20:29 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 21:16 |