Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dobra praktyka MVC, Czy widok powinien mieć logikę
okatse
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 4.11.2019

Ostrzeżenie: (0%)
-----


Witam

Pytanie dotyczy dobrej praktyki w stosowaniu MVC a dokładniej:
a) widok - czy powinien zawierać elementy logiki - np: kontroler przekazuje do widoku dane -> widok sprawdza uprawnienia lub na podstawie uprawnień renderuje część danych (do których user ma uprawniania ) a resztę pomija ? Czy może powinno to wyglądać tak że kontroler przekazuje do widoku tylko te dane do których user ma uprawnienia a widok jakoś musi sobie poradzi z ewentualnym brakiem kompletu danych.

(IMG:style_emoticons/default/cool.gif) w frame-workach php opartych o MVC przyjęło się że widok to zazwyczaj kod html. Czy dobrą praktyką będzie tworzenie widoków także dla metod które nie kończą się wyświetleniem strony ? Na przykład gdy wchodzimy pod jakiś URI to kontroler uruchamia metodę renderującą (zazwyczaj html) ale gdy strzelamy pod URI ajaxem to czy powinien istnieć specjalny widok zwracający json czy wystarczy w kontrolerze echo json_encode($output);
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
okatse
post
Post #2





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 4.11.2019

Ostrzeżenie: (0%)
-----


Ok dzięki za odpowiedzi.
To mam jeszcze inne pytanie. Gdzie się powinno sprawdzać (czy w modelu , kontrolerze czy widoku) uprawnienia przy zapisie i odczycie? Czy te schematy poniżej są poprawne ?
Zapis
Z formularza dane trafiają do kontrolera , kontroler wczytuje model -> model waliduje dane i sprawdza uprawnienia czy zalogowany user może zapisać te pola do bazy i zapisuje tylko te do których user ma prawo

Odczyt
a) Kontroler wczytuje model -> model odczytuje dane z bazy (wszystkie pola, po prostu wykonuje zapytanie bez sprawdzenia uprawnień)-> kontroler przekazuje dane do widoku -> widok sprawdza uprawnienia i renderuje tylko te pola do których zalogowany user ma prawo np IF (access ($pole_x) ) echo 'input...
(IMG:style_emoticons/default/cool.gif) Kontroler wczytuje model -> model (sprawdza uprawnienia) odczytuje tylko pola do których user ma prawo -> w widoku jest seria IF sprawdzająca IF(isset( $pole_x) ) echo 'input...
c) inne rozwiązanie
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 23:12