MVC parę pytań

0

Witam
Dotychczas myślałem, że rozumiem MVC i jak budować aplikacje o to oparte, napisałem jedną i zostawiłem to na jakiś czas, teraz znów piszę stronę i w celu odświeżenia pamięci zajrzałem do paru źródeł i z tego co wyczytałem wynika że raczej źle rozumiałem MVC. Najprościej będzie wytłumaczyć o co mi chodzi na przykładzie: logowanie do strony internetowej. Najpierw kontroler wyświetla dla użytkownika formularz, użytkownik go wypełnia i jest wywoływany inny kontroler. Ten kontroler dostaje dane z formularza i co powinien z nimi zrobić?
a) Obrobić je, przeprowadzić walidację danych, zabezpieczyć przed SQLinjection i wysłac te dane do modelu, model sprawdza tylko czy w bazie istnieje użytkownik z takim loginem i hasłem i jeżeli istnieje do zwrócić dane typu id użytkownika lub zwrócić informację o tym że takiego usera nie ma. I po otrzymaniu tych danych kontroler przypisuje je do sesji.
b)Kontroler przekazuje gołe nieobrobione dane do modelu, a model je obrabia, zabezpiecza i hashuje, szuka użytkownika i jezeli uzytkownik istnieje do dodaje jego dane do sesji i zwraca dla kontrolera tylko informacje czy znaleziono uzytkownika
Jak to powinno wyglądać? Bo już się szczerze mówiac pogubiłem

0

Nie wiem czy wiesz, ale taka prawdziwa nazwa MVC to "Massive View Controller", a ta oficjalna ("Model-View-Controller") jest przyjęta dla beki.
A tak serio, to o ile zdaje mi się, że MVC sugeruje wersje A, to ja zastosowałbym wersję B. MVC jest dobry do małych projektów, przy większych (podobno, bo jeszcze takiego nie pisałem) się nie sprawdza.

0

Zdecydowanie wersja A.

HEMIkr napisał(a):

A tak serio, to o ile zdaje mi się, że MVC sugeruje wersje A, to ja zastosowałbym wersję B. MVC jest dobry do małych projektów, przy większych (podobno, bo jeszcze takiego nie pisałem) się nie sprawdza.

W sensie powiązałbyś logikę biznesową z frameworkiem odpowiedzialnym za obsługę protokołu HTTP (no bo gdzieś tam siedzi sesja, a samo jej istnienie wynika z bezstanowości HTTP).
A jakbyś chciał to potem przetestować automatycznie, to stawiałbyś serwer, no bo na unit testy nie ma już szans?

1

Tu jest to wyjaśnione, na przykładzie Laravela:
https://selftaughtcoders.com/from-idea-to-launch/lesson-17/laravel-5-mvc-application-in-10-minutes/
https://scotch.io/tutorials/simple-and-easy-laravel-login-authentication

Oczywiście to tylko jedno z możliwych podejść (dlatego faktycznie może się mieszać).

1 użytkowników online, w tym zalogowanych: 0, gości: 1