Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MVC] Struktura Modeli
Forum PHP.pl > Forum > PHP > Frameworki
rangoo
Witam wink.gif

Mam pytanie odnośnie struktury kontroler-model. Czy jeśli mam na przykład panel admina i galerię (na pewno osobne kontrolery) to pobieranie danych do edytowania galerii, dodawania zdjęć itp. powinno być w modelu galerii czy modelu admina?

Z góry dzięki wink.gif
mat-bi
Ja to załatwiam grupą kontrolerów administracyjnych wink.gif

Np.

Controller_Admin_Galeria
Controller_Admn_Podstrony

Takie coś jest możliwe np., w Kohanie smile.gif

@EDIT:

Tfu, modele?

Modele w tym wzrocu są do przerabiania, pobierani etc. danych, nei wyświetlania smile.gif
rangoo
Modele pobierają z controllerów a nie odwrotnie?
mat-bi
Controllery "kontrolują" zapytania. W MVC tym obecnym we frameworkach ejst pewne wypaczenie oryginalnego wzorca, bo np. w kontrolerach jest przerabianie rzeczy, a modele zostay "spłaszczone" tylko do ORM

Tak naprawdę w prawdziwym MVC, te warstwy się przenikają, ale w takich do użytku Web-owych, zwykle kontrollery pobierają dane z modeli i przekazują je do widoku.
rangoo
Cytat(mat-bi @ 8.05.2011, 13:40:40 ) *
(...) ale w takich do użytku Web-owych, zwykle kontrollery pobierają dane z modeli i przekazują je do widoku.


Czyli tak jak mówiłem wink.gif

Jeszcze pytanie: czy struktura taka jak w moim przypadku jest poprawna? Zaraz ją opiszę.

init.php - rozpoczyna sesję, łączy z bazą, inicjuje router
Router - parsuje parametry i wg $_GET['action'] i $_GET['page']: najpierw tworzy kontroler 'Control_'+$_GET['page'] a następnie uruchamia metodę tego kontrolera 'Action_'+$_GET['action'] (oczywiście niepoprawne akcje/kontrolery są przechwytywane i przenoszone do domyślnego).
Kontroler - ma w sobie $this->model jako model i $this->v jako widok. w akcjach dane pobierane są z modelu i poprzez $this->v->show() jest wyświetlany.
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.