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.
<?php
?>
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:
<?php
$news=$this->dao->News;
$news->setTitle('ble ble');
$news->save();
?>
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:
<?php
//kontynuacja powyższego kodu
$this->data->title=$news->getTitle();
?>
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.