![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 266 Pomógł: 20 Dołączył: 15.11.2006 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Jak rozwiazujecie uruchamianie akcji w implementacji innej akcji? Dodam, iz u mnie kazda akcja posiada swoj widok. Zatem w akcji1, w ktorej musze uruchomic inna akcje2 musialbym jakos przypisac do zmiennej - widok akcji2, a potem przeslac go w zmiennej akcji1 (juz plus akcja2) to widoku akcji1 ? Nie wiem jak do tego podejsc. Chodzi o to, ze mam dynamicznie tworzona liste danych w akcji2, a akcja1 tez chce z nich korzystac +dodac odp. swoje funkcjonalnosci. Schemat: Akcja_showItems->Uruchom akcje main->akcja main wykonuje swoj kod->uruchom szablon akcji_main->przekaz go w zmiennej do akcj showItems->uruchom szablon akcji_showItems przekazuja do niego rowniez dane z akcji main.. Jak do tego podejsc ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Ten obiekt nie należy do warstwy modelu. To po prostu obiekt kolekcjonujący dane, którymi akcja chce się podzielić z warstwą widoku lub z inną akcją. Predefinowana zmienna actionName służy raczej do oznaczenia przynależności danego obiektu i przydaje się, gdy chę go wyszukać wśród kilku innych. np. kontroler widoków układa referencje do tych obiektów w tablicy asocjacyjnej używając właśnie nazw akcji jako kluczy.
Generalnie możesz też sobie zawsze w templatce wypisać nazwę akcji, co może być przydatne.
Co do modelu. Ciężko jest mówić o modelu w oderwaniu od implementacji. Kilka dni temu wprowdziłem kolejną funkcjonalność i bardziej można ją nazwac modelem, choć ja uważam, że to po prostu kontroler DAO, współpracujący obecnie w Propelem. Tutaj faktycznie każda akcja może mieć 100% pewności, że odwołując się tak:
Otrzyma obiekt News, który jest klasą Propela i może sobie dowolnie z niego korzystać. Jeśli zechce, może udostępnić cały ten obiekt, lub tylko jego fragmenty warstwie widoku poprzez:
Nadmienie jeszcze tylko, że kontroler DAO na zasięg modułu - inne moduły i ich akcje nie widzą go, bo mają własne. Jak widzisz. Tutaj akcja pełni rolę pośrednika pomiędzy warstwą danych, a widokiem. Sama z kolei jest uczestnikiem większej całości - modułu. Moduł z kolei jest częscią aplikacji lub małą aplikacją. Zauważ, że nie ma kodu odpowiedzialnego za prezentację, co oznacza, że moge sobie wyprodukować dowolne wyjście w postaci html, xml, pdf, pda, plain text, czy_co_tam_chcesz używając jednej i tej samej akcji. Sorki za lekkie przynudzanie, ale chciałem pokazać, że tradycyjne pojęcie modelu, czy kontrolera jest zbyt abstrakcyjne - trzeba przyglądać się konkretnym imlementacjom i zorientować się, czy jest sprzeganie, czy go nie ma. Ja w swoim FW chyba nawet przesadziełem z separacją, bo nie ma sensu odpalać go do napisania prostej strony-wizytówki, :| Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 04:35 |