![]() |
![]() |
![]()
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); |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 4.11.2019 Ostrzeżenie: (0%) ![]() ![]() |
viking - dzięki za odpowiedź ale :
Cytat a) Bardzo często tak się robi choćby w blade i laravelu (dyrektywa @can). tylko które podejście się często robi - bo w pytaniu zawarłem dwa sposoby Cytat (IMG:style_emoticons/default/cool.gif) Tutaj albo odpytanie powinno iść do API, albo większość rozwiązań oferuje metodę typu disableLayout która automatycznie wyłącza renderowanie widoku z plików. metoda z disableLayout jest mi znana jak najbardziej - tylko że to nie rozwiązuje problemu bo wtedy nadal mamy metodę kontrolera która kończy swoje działanie wywaleniem rezultatu bezpośrednio jako output - czyli brak zdefiniowanego widoku. Po prostu metoda się kończy a jej wynik zwracany jest do domyślnego outputa. I tu moje pytanie czy w dobrym tonie jest aby jednak nie pozostawiać tego tak sobie luzem i trochę sztucznie i na siłę stworzyć jednak widok - może przykład wersja a
wersja b
W obu przypadkach metodę get_dane wywołuje po przez ajax. W wersji A wynik działania jest po prostu rysowany na output a w wersji B użyty jest widok - trochę sztucznie i na wyrost ale w końcu jest to oparte o wzorzec MVC więc może powinno być tak robione nawet jeśli jest na wyrost ? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 04:37 |