Luneth
10.08.2010, 17:10:33
1. Kontroler ustala rodzaj żądania:
a) POST -> model przeprowadza walidację(sprawdza czy wartości z $_POST znajdują się w bazie): jeśli prawda, model loguje użytkownika (zdefiniowanie zmiennych sesyjnych) -> widok wyświetla stronę autoryzacji z nazwą zalogowanego użytkownika i hiperłączem do wylogowania; jeśli fałsz, kontroler definiuje zmienną z błędem, widok wyświetla formularz logowania z wygenerowanym błędem, który został mu przekazany
b) GET -> określenie żądania: żądanie wylogowania -> model wylogowuje użytkownika, niszczy sesję usera [sesje oparte na mysql], kontroler robi przekierowanie; żądanie domyślne: widok wyświetla formularz logowania
Czy jest to zgodne z MVC? Mam pełno wątpliwości co do formularzy a zwłaszcza zastanawia mnie czy to model ma filtrować wprowadzane zmienne (trim() itd) a następnie je walidować.
Diablos
10.08.2010, 21:50:50
Zdecydowanie nie.
Model nie jest odwzorowaniem części decyzyjnej tylko logiki dostępu do danych.
Model nie powinien wylogowywać uzytkownika, a już napewno nie powinien niszczyc sesji. Powinien to robic kontroler z co najwyzej użyciem Modelu (w przypadku gdy Model ten odwzorowuje dane sesyjne).
Model nie powinien również nic filtrować. Od filtrowanie są filtry, które powinny zostać nałożone na dane w kontrolerze.
Co masz na mysli mowiac o walidowaniu? Walidowanie to sprawdzanie poprawności danych z dopuszczalna trescia i zajmują sie tym walidatory w kontrolerze nalozone na formularz.
Luneth
10.08.2010, 22:13:41
Nie wiem czy to nie jest naginanie teorii, ale część decyzyjna pozostaje w kontrolerze, tylko metody od tego znajdują się w modelu - ale powinny znajdować się jednak w kontrolerze, tak?

Co bardziej zabawne miałem zrobione tak jak Ty mówisz, zanim przyjąłem tą (jak teraz się okazuje) mylną koncepcję
Diablos
11.08.2010, 09:28:04
Metody mogą się znajdować części Modelu, ale tez nie konkretnie w samym modelu odwzorowującym dane tylko w jakiejs wartstwie posredniej miedzy Kontrolerem i Modelem czyli np. Service. Mimo wszystko Service ten odpowiada jedynie za wybranie danych i przekazanie ich do Kontrolera, a cała reszta odbywa sie w kontrolerze.
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.