Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MVC - formularz, filtracja, walidacja, autoryzacja...
Forum PHP.pl > Forum > PHP > Object-oriented programming
Luneth
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
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
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? smile.gif Co bardziej zabawne miałem zrobione tak jak Ty mówisz, zanim przyjąłem tą (jak teraz się okazuje) mylną koncepcję biggrin.gif
Diablos
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.