Tematy na forum Pro mogą zakładać jedynie moderatorzy. W otwartych tematach może pisać każdy, kto ma coś fachowego do powiedzenia. Wszystkie posty nie wnoszące nic do tematu będą natychmiast usuwane, a ich autorzy dostaną ostrzeżenie.
Jeśli uważasz, że jakiś temat jest warty dyskusji na tym forum, zgłoś go w temacie Propozycje.
Post
#1
|
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. |
Mam nadzieję, że trafię w gusta z takim tematem.
Dyskusja dotyczy szeroko rozumianego V w architekturze MVC, jego budowy i sposobów działania w różnych frameworkach i rozwiązaniach własnych. Terminologia A Proponuję przyjąć taką terminologię , aby nie było w dyskusji nieporozumień. Widok to inaczej warstwa prezentacji wyników użytkownikowi. W budowie występują: format i renderer Formatami są np. HTML, XML, plik tekstowy, obrazek Rendererami dla formatu HTML są np. (gołe)PHP, Smarty, OPT Dane widoku to wszelkie dane, przekazane do widoku przez kontroler lub dane, do których widok ma dostęp w inny sposób. Proszę zatem nie pisać, "że widok pobiera dane z modelu", bo jeśli ma do niego dostęp, to model jest daną, którą widok potrafi zinterpretować. Mile widziane diagramy UML lub inne, byle miały ręce i nogi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Proszę nie zadawać pytań przedszkolnych! P.S Jeśli ktoś ma jeszcze jakieś propozycje terminologii, proszę zgłosić mi, albo któremuś moderatorowi - jeśli będa sensowne, zostaną dodane w tym poście. Jeśli ktoś się nie zgadza z tą terminologią, niech zaproponuje inną i zaznacza, której używa w dyskusji (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Następna nazwa to 'B', potem 'C' itd Pozdrawiam. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%)
|
Od samego typu widoku nie jest zależne która akcja się wykona, więc to nie Router powinien decydować jaki będzie "typ" wynikowy. To już jest poziom kontrolera. Można oczywiście wykorzystać mainControler do tego, ale to jednak w nim powinien być wybierany widok. Jak nie? Przecież router tłumaczy URLe, parametry z CLI, komendy głosowe ((IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ) jaką akcje ma wykonać? Tym samym wydaje mi się, że od niego zależy jaki format wynikowy ma być. Dla CLI, czy SOAP to będzie jasne, ale dla web requestów już nie (HTML, (AJAX) JSON, (AJAX) XML). Kontroler/Akcja ma byc niezależna od formatu wynikowego. Dlatego tak potepiam te stosy ifów sprawdzających rodzaj żądania i generujacych odpowiedni output w wewnątrz akcji. [edit]Hmmm, tak myślę, że może nie tyle Router, co warstwa requestu.[/edit] Zauważyłem właśnie, że strasznie dużo ludzi utożsamia widok z renderem.
Pytanie, jak z szablonami html wiadomo, mają określoną nazwę i lokalizacje i w tan sposób są dobierane, to jak sprawa przy PDF, gdzie musi istnieć klasa która umie wygenerować odpowiednie dane wynikowe? W sumie to sam widok powinien wiedzieć jaka jest domyślna konfiguracja, więc można dla PDF tworzyć unikatowe klasy renrerer'ów, które by potrafiły obsłużyć to co widok dostał. (chyba muszę sobie przyswoić lepiej słownictwo, bo się nie dogadamy ;] ) Lepiej stworzyć widok(i) akcji, który bedzie potrafil obsluzyć kilka rodzajów formatów wyjściowych w tym np. modyfikować dane z kontrolera i dopiero je przekazywać do renderera. O tyle wygodniej, że nie trzeba robić renderera JSON, bo wystarczą fukcje natywne. A no i to sam widok określa jaki typ jest zwracany, bo on wie kim jest, nie ma żadnego ustawiania. Ogólnie tym do czego dążę to aby mieć jakieś widoki (Smatry/OPT/XML/PDF/JSON) i do nich odpowiednie "renderer"y dla smarty .tpl, dla PDF odpowiednia klasa itd. Dzięki temu, jakby ktoś chciał zmienić system szablonów wystarczy zaimplementować odpowiedni interfejs/abstrakcje widoku i dla miejsc wystąpienie potrzebne renderery. W czym renderery nie są jakoś zunifikowane, bo należą tylko do widoku. EDIT: literówka O i doszedłem do Tego, przeczytałem i też mi się podoba. Chociaż trochę sie skrzywiłem, na to, że dla każdego rendera na twardo będzie trzeba obsługę formatu wpisać (czyli ten skrypt PHP dla PDF i tpl dla Smartów). Nic nie przebije samego PHP gdzieś pomiędzy jeszcze - chociażby mozliwości jego użycia. Ten post edytował LBO 16.09.2008, 21:36:45 |
|
|
|
Cysiaczek Widok - renderowanie widoku 12.09.2008, 15:38:06
orglee Dobra to ja doleję oliwy do ognia i zaczn... 12.09.2008, 17:23:25
LBO Mnie osobiście denerwuje, że w MVC rozpowszechnion... 13.09.2008, 21:16:47
orglee No właśnie otóż to. Dla mnie widok ... 13.09.2008, 22:29:43
LBO Cytat(orglee @ 13.09.2008, 23:29:43 )... 13.09.2008, 23:17:06
Cysiaczek @orglee - To, że dla użytkownika frameworka model ... 13.09.2008, 23:31:24
orglee CytatNie zapominaj, że Smarty nie zrobi wszystkieg... 13.09.2008, 23:59:15
LBO Cytat(Cysiaczek @ 14.09.2008, 00:31:2... 14.09.2008, 00:31:40
Cysiaczek Coś czuję, że zaraz znów rozbijemy ... 14.09.2008, 00:32:29
LBO Cytat(orglee @ 14.09.2008, 00:59:15 )... 14.09.2008, 00:42:15
orglee Mam propozycję. Może zdefiniujmy czym powinno się ... 14.09.2008, 01:00:09
Cysiaczek Ja od zawsze forsuję prosty podział widoku na:
1. ... 14.09.2008, 01:25:37
Black-Berry CytatNo właśnie otóż to. Dla mnie widok jest to pl... 14.09.2008, 10:19:25
LBO Cytat(Black-Berry @ 14.09.2008, 11:1... 14.09.2008, 10:26:15
dr_bonzo Dane do widoku wybieram w kontrolerze, widok (zwyk... 14.09.2008, 19:55:51
Sedziwoj Mi też się wydaje że problemem jest raczej ustalen... 16.09.2008, 12:38:52
LBO Cytat(Sedziwoj @ 16.09.2008, 13:38:52... 16.09.2008, 12:57:24
dr_bonzo U mnie, w akcji, wybierany jest typ odpowiedzi.
T... 16.09.2008, 13:04:53
LBO dr_bonzo: Rozumiem, że posiadasz jakis router do T... 16.09.2008, 13:22:30
dr_bonzo Oczywiscie mam router, wlasnie on sie zajmuje rozp... 16.09.2008, 13:33:17
Sedziwoj Od samego typu widoku nie jest zależne która ... 16.09.2008, 16:00:08 
orglee Cytat(LBO @ 16.09.2008, 21:51:29 ) Ja... 17.09.2008, 08:57:51
LBO Cytat(orglee @ 17.09.2008, 09:57:51 )... 17.09.2008, 10:01:52
dr_bonzo [ot] CLI = Command Line Interface 17.09.2008, 11:02:01
orglee Zależnie od architektury frameworka wynik produkow... 17.09.2008, 13:46:35
LBO @orglee PHP też mozna użyć do konso... 17.09.2008, 14:17:38
quality Witam.
A czy ktos uzywal kiedys XSLT do renderowan... 2.03.2011, 08:47:36 
Speedy Cytat(quality @ 2.03.2011, 09:47:36 )... 9.04.2011, 15:53:42
everth XSLT też może być przetwarzane po stronie serwera ... 9.04.2011, 16:04:29 ![]() ![]() |
|
Aktualny czas: 4.12.2025 - 17:22 |