Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zasady pisania na forum Pro

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.

> Widok - renderowanie widoku, sposoby implementacji, różnice w istniejacych rozwiązaniach
Cysiaczek
post 12.09.2008, 15:38:06
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 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 smile.gif Następna nazwa to 'B', potem 'C' itd

Pozdrawiam.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
LBO
post 13.09.2008, 23:17:06
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Cytat(orglee @ 13.09.2008, 23:29:43 ) *
No właśnie otóż to. Dla mnie widok jest to plik szablonu napisany w html czy xml czy czymkolwiek innym i przepuszczony przez renderer (np. smarty). Pisanie klasy widoku robiącej to co można zrobić za pomocą dosłownie odrobiny pseudokodu jest bez sensu. Nie wspominając że w dużej części frameworków, widok musi dziedziczyć po jakiejś super-duper specjalnej klasie w które jest 10 linijek kodu na krzyż i właściwie służy ona jedynie za kontener.


Nie zapominaj, że Smarty nie zrobi wszystkiego. PDF Tobie nie wygeneruje - bez czystego PHP się nie obejdzie.
Ale to część dyskusji, którą chciałem ja podjąć. Bardziej to związane z architekturą frameworków niż samymi rendererami. Jak będziesz miał ochotę zapraszam do dyskusji.

Cytat(orglee @ 13.09.2008, 23:29:43 ) *
W moim poprzednim tekście chciałem dokonać porównania rendererów operujących na HTML i XML.


Jako XHTML rozumiesz zagnieżdżony PHP w XHTML, tak?

Cytat(orglee @ 13.09.2008, 23:29:43 ) *
Może trochę nieprecyzyjnie się wyraziłem bo smarty można zastosować w obu przypadkach. Jednak do plików XML wydaje mi się że częściej są używane narzędzia bibliotek DOM jak również renderery korzystające z tych bibliotek. To samo w sobie narzuca konieczność tworzenia klas dla każdego widoku, nie robiących nic za wyjątkiem wklejania danych w odpowiednie miejsca.
Zapewne dalej jest to niewystarczające... ale cóż poradzić... analfabeta ze mnie.

Postaram się to trochę obrazowo wyjaśnić.
Smarty: FrontController.php, ControllerDisplay.php, ControllerEdit.php - model pomijam - display.html, edit.html
FW -> FC(akcja?) -> CD / CE -> dis / ed - Prosto i zrozumiale bez względu na to czy FC wywoła dis / ed czy zrobi to CD lub CE

DOMDocument(lub inne korzystające z niego): Smarty: FrontController.php, ControllerDisplay.php, ControllerEdit.php - model pomijam - display.view.php + display.xml, edit.view.php + edit.xml - Tutaj na pierwszy rzut oka widać że doszły pliki które mają manipulować widokiem. Już nie wystarczy jak przy smartach użyć assign i fetch tylko trzeba wiedzieć co gdzie wrzucić i właśnie umieszczenie danych z modelu następuje poprzez kod PHP w plikach *.view.php, co jest zwyczajnie niewygodne i niepotrzebnie komplikuje cały proces pisania widoku. Nie wspominając o ewentualnych modyfikacjach tego kodu.

Bardzo możliwe że mylę pojęcia w jakiś sposób.


Zgubiłeś sens Widoku i renderów we frameworkach. Najczęściej to są nakładki na systemy szablonów. Rozchodzi się o integrację. Jak będzie zrobiona umiejętnie z perspektywy Kontrolera/Akcji nie zauważysz różnicy, czy używasz Smarty, czy OPT.
Go to the top of the page
+Quote Post

Posty w temacie
- 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
- - LBO   Cytat(Sedziwoj @ 16.09.2008, 17:00:08...   16.09.2008, 20:51:29
|- - 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


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

 



RSS Wersja Lo-Fi Aktualny czas: 31.05.2024 - 10:40