Cytat(coolos @ 13.06.2012, 17:23:21 )

Szablon a Widok to różnica

.
Panie złotousty,
Cytat
Z pewnością efekt finalny zostałby osiągnięty przy takim podejściu. Z tym że tworzenie "viewModel" jak to nazwałeś to nic inego jak wspomniany post wyżej przezemnie antywzorzec projektowy "anemiczny model dziedziny". Przesyłanie tablic asocyjacyjnych również nie uważam za rozwiązanie, to że tworzy się jakieś obiekty i pobiera z nich dane w postaci tablic nie czyni aplikacji obiektowej (są to jedynie procedury poupychane w klasach).
Szukam jakiegoś innego sposobu na ukrycie metod z logiką biznesową przed widokiem.
Więcej czasu poswiecasz na zastanawianie sie co jest "poprawna obiektowoscia" a co niepoprawna niz na faktyczne działania.
Skoro tak zalezy ci na poprawnosci skalowalnosci i rozszerzalnosci kodu dlaczego tworzysz wlasny framework zamiast wykorzystac jakis standard?
Szablon/Widok - a co za roznica? Oczywiscie widok moze byc klasą, moze w ogole nie zawierac kodu html, tylko wygenerowac wszystko z poziomu PHP, ale zycze ci zebys nie musial pracowac z projektami ktore dzialaja w ten sposob.. Miałem okazje przerabiajac pluginy do joomli.. boże broń przed tym.
takze jedyne podejscie poprawne przy MVC webowym to widok=template.
Zreszta ogolnie kazdy jak może ucieka od kodu w widokach, wiekszosc webowych technologii ma swoje silniki szablonów, czy to java, czy to php, czy to asp.net, w aplikacjach desktopowych czy na smartfony rowniez ludzie poszli po rozum do glowy i odeszli od tworzenia interfejsow w kodzie na rzecz xml-owych języków, przykład: android(XML), wp7 (XAML), wpf (XAML - wektorowy interfejs zastępujący winapi przy rysowaniu kontrolek)/silverlight, itd itp.
DTO czy ViewModel to swietna rzecz... jeśli ci pomogą to użyj ich.. ja ich uzywam i mi dobrze z nimi, chociaż w C# deklaracje klas są zwięzłe, bo mamy normalne propetries a nie te cuda z getPole, setPole. Więc mamy mniej pisaniny, klasa DTO wyglada zwiezle, taki twardo typowany widok jest znacznie czytelniejszy niz dynamiczny.
Bez DTO jest problem gdy chcesz w widoku wyswietlic cos co jest np obliczane na podstawie dwoch pól modelu. Bo nie ma tego wtedy gdzie wysłać. Tak samo, nie zawsze domain model odzwierciedla to co chcesz przesłać w formularzu bo czasem są potrzebne dodatkowe pola, i co wtedy? dodasz na siłę do bazy danych pole które zawsze będzie null? bez sensu.
Padł argument ze DTO/ViewModel to nic tylko worek getterów i setterów. I tak jest w istocie, dopóki viewModele zostały napisane pod konkretny model. Gdy okazuje sie ze trzeba zmienic model na inny, czasami na taki którego nie mozemy zmodyfikowac bo np stworzyl go inny dzial firmy i dostarczyl go w takiej a nie innej postaci, takie proxy pomiedzy danymi a widokiem sie bardzo przydaje. Autor po prostu byc moze zajmuje sie zbyt prostymi rzeczami i dlatego nie widzi dla nich zastosowania, i kloci sie o 20 zazwyczaj automatycznie wygenerowanych linijek kodu.
Duzo ludzi zastanawia sie nawet czy gettery/settery są potrzebne, tak im żal tyłek sciska ze muszą naklepac troche "niepotrzebnych" linijek. Albo machnąć jakąś factory.
mam w starszych projektach niektore modele po 2,5 tys linijek kodu, ktorych nijak nie idzie podzielic bo trzeba by bylo przeryć pol projektu. a naprawde wolalbym zeby tam byly dto
Tak ogólnie wg mnie wszelkie wywody nad poprawną obiektowością PHP wydają mi się głupie. Przygadał kocioł garnkowi. Jeśli chcesz osiągać orgazmy przy refaktoryzacji to wybitnie wybrałeś nie tą technologie.
Burdel w kodzie, bałagan i syf jest wg mnie wpisany w historie i specyfikę php. Pisz, w miare czytelnie, niech ci dziala i nie trac czasu na takie zastanawianie się

ps. jakiego ORM uzywasz?