![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 1 Dołączył: 15.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam pytanie czysto teoretyczne. Buduje strone i chce ja oprzec na wzorcu MVC. Wspieram sie Smarty i Pear przy tym. I teraz moje pytania. 1. Czy za widok maja byc odpowiedzialne tylko szblony smarty czy tworzyc do niego osobna klase? 2. Poza przypisaniem danych ktore uzyskuje z modelu, podstrony roznia sie tez wygladem(dokladnie tlami glownej tresci), jaka czesc MVC powinna byc odpowiedzialna za ustwienie przykladowego tla? Rozwazam dwa przypadki, nie wiem jednak ktory bylby "najczystrzy" jesli chodzi o zalozenia ww wzorca. Pierwszy to to ze poszczegolne metody kontrolera przypisauja do szablonu smarty, dane z modelu oraz w kazdje metodzie jest deklarowana zmienna odpowiadajaca za tlo strony i tak tez przypisywana do szablonow. Drugie rozwiazanie to takie, ze w akcjach kontrolera wogole nie zajmu je sie ustawianiem tla a tylko wyborem widokow. W takim przypadku jednak ilosc szablonow musialbym odpowiednio rozmnozyc. Czytam dosc spro na temat mvc, moje doswiadczenie z frameworkiem cakePHP wcale nie rozwialo wszelkich watpliwosci jednak, przynajmniej tych teoretycznych. Rozumiem ze wzorzec jest raczej czyms abstrakcyjnym i elastycznym niemniej na forum znalazlem taka definicje widoku: Cytat Główna zasasda MVC jest to aby w modelu byl tylko kod php a w VIEW tylko html Natomiast w jednym z rtykulow na wortalu opis brzmi juz tak: Cytat Widok powinien wykorzystywać model do pobrania danych, które będą wyświetlone. Typowo, widok powinien utworzyć instancje klas modelu i wywołać metody odpowiedzialne za pobranie odpowiednich danych. Tym, czego należy się wystrzegać w widoku, jest modyfikacja danych. Widok nie powinien zmieniać w żaden sposób stanu aplikacji. Powinien np. wyświetlać listę użytkowników, ale nie powinien ich dodawać ani usuwać. Rozbieznosc jest wiec dosc spora... Jak najlepiej wedug Was zarac sie za to, w przypadku niewielkiej aplikacji? Z gory dzieki i pozdrawiam! |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
ech....
Ile razy to jeszcze będzie wałkowane? Jest tyle pomysłów na to ilu jest programistów. Najlepiej to zacznij sam powoli pisac, próbuj rozne sposoby i wybierz ten, który ci bardziej do gustu przypadnie. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
http://forum.php.pl/index.php?showtopic=69281&hl=widok
W podanym wyżej topiku masz sporo teorii z przykładami. Gdzieś w połowie strony napisałem kilka zdań na temat różnych interpretacji elemantów składowych wzorca. 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. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 1 Dołączył: 15.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Bardzo dziekuje, tego watku nie wygrzebalem, coz widze tylko ze problem ma mase rozwiazan, ale przynajmniej wiem ze nie robie jakiegos karygodnego myslowego bledu chyba...
![]() Jeszcze raz dzieki i pozdrawiam! |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 161 Pomógł: 1 Dołączył: 11.02.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
no to ja ma pytanie ... z klasy
![]()
Ps: gdyby ktos zajrzal do przedszkola byl bym wdzieczny ![]() Ten post edytował sanchoo 13.08.2007, 12:17:17 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Przyjrzyj się definicji swojej klasy C, wogóle napisz jeszcze raz ten kod, tym razem poprawnie, bo wogóle to nie ma prawa działać.
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. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 161 Pomógł: 1 Dołączył: 11.02.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
faktycznie zle napsialem.. napsialem to z palca zeby tylko przedtsawic problem:
Ten post edytował sanchoo 13.08.2007, 13:04:19 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@sanchoo
Ty może już nie pisz, albo najpierw sprawdź czy to co podałeś działa. Do tego użycie globali to debilizmy, gdy się bez nich spokojnie da obejść. -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 161 Pomógł: 1 Dołączył: 11.02.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
hehe tak jak mowilem chodzilo o kokreny przyklad
![]() ![]() ![]() ![]()
ale to chyba nie trzba wyjasniac ![]() no nie wazne... widze ze jak sie nie poda zerznietego kodu ktory sie "kompiluje" to ciezko zczaic o co komus chodzi... moze to i racja ... wsumie jak ktos napisze "pseudo kod" ktoremu wydaje sie jasny to nei koniecznie ktos moze zrozumiec o co chodzi... w kazdym razie poakzalm znajoemu z pracy... i jakos bez 2 zdan powiedzial mi co mam zrobic ![]() ale dzieki za zainteresowanie.... |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@sanchoo
Co ma działać, to że to co piszesz jest nie zgodne z żadnymi zasadami, po co dajesz komentarze, kiedy kod sam by to powiedział, a nie trzeba dodatkowo się nad tym wysilać, bo Tobie się nie chce pisać. Va nawet nie opisałeś słowami tego, tylko narzekasz i sugerujesz że osoby z tego grona są głupsze od Twojego kolegi z pracy. A zrozum że po prostu nie chce się ludziom wnikać w czyjeś wywody, gdy są niejasne, wtedy chodzi nadinterpretacja i mozna zrozumieć że działa inaczej niż Ty myślałeś że to prezentujesz. Więc radził bym nauczyć się opisywać swoje problemy, czy pomysły w taki sposób aby dla innych były łatwo przyswajalne, bo nie chodzi tu o to aby utrudnić innym zrozumienie. A Twój "pseudokod" taki jest. -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 161 Pomógł: 1 Dołączył: 11.02.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat to ciezko zczaic o co komus chodzi... moze to i racja ... wsumie jak ktos napisze "pseudo kod" ktoremu wydaje sie jasny to nei koniecznie ktos moze zrozumiec o co chodzi... jesli wyszlo tak jak mowisze ze zasugerowalem ![]() |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 161 Pomógł: 1 Dołączył: 11.02.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
MVC a walidajca formularzy
![]() Chce zamknac walidacje w jednej klasie. Wydumalem to tak: w pliku index.php:
i clasa walid:
obiket walid loaduje w korzeniu kontolrera:
i teraz moge sobie wywolywac w contolrolerze np jesli chce zabezpieczyc sie przed SQL Injection to w klasie walidacji stworze sobie odpowiednia funkcje .. ktora zwroci mi juz sprawdzona wartosc do zapytania. Pytanie czy to dobre rozwiazanie?? dzieki temu co prawadam unikam np global $walid itp... ale mvc zaczyna bardziej mi sie wiazac... walidacje trez bede stosowal w widoku wiec bede musial przekazac mu obiket ![]() |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Może TO ci pomoze. Na koncu jest przykład jak u siebie rozwiązałem problem validacji
![]() -------------------- |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 28 Dołączył: 4.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Główna zasasda MVC jest to aby w modelu byl tylko kod php a w VIEW tylko html Nie tylko HTML. Widok odpowiada za wyświetlanie i prezentację danych w każdej postaci - tj. XHTML, XML, RSS, PDF, XLS, CSV itd. Nie odbywa się w nim pobieranie danych, ani też ich modyfikacja. Dane są wyłącznie prezentowane. Wg mnie, dla każdego typu prezentowanych danych powinien być utworzony osobny "subwidok". -------------------- Sygnatura niezgodna z regulaminem.
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 161 Pomógł: 1 Dołączył: 11.02.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Nie odbywa się w nim pobieranie danych, hmm.. widok w mvc ma dostep do modelu po co innego jak nie pobieranie danych? Jesli nie moze pobierac danych wtedy zostaje tylko opcja ze kontroler podaje mu dane.. a to juz nie jest MVC tylko ...wylecialo mi z glowy ![]() |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
@up: no czekam jaki to to jest wzorzec
![]() -------------------- |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 161 Pomógł: 1 Dołączył: 11.02.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
menic dzieki za info.
Zrobilem to mniej weicej tak: Model dziedziczy z klasy walid. I tam sobie odpoweidnio sprawdzam dane. Jesli jest jakis blad powiedzmy nick za krotki to zapisuje to tak. $this->error['nick']="Nick jest za krotki" Dzieki czemu pozniej laduje do smartow wyswietl przy nicku $model->getError("nick")... i po sprawie.. Podbnie jest rozwiazane w Ruby. Niestey xml nie maielm zadnej stycznosci... raczej z jego zastoswaniem.. nie ta liga jeszcze ![]() |
|
|
![]()
Post
#18
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Chcesz powiedzieć, że zrobiłeś Model extends Validator ?
No bez jaj... -------------------- 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. |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 161 Pomógł: 1 Dołączył: 11.02.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
chcialem waldiacje zamnac w jedenj klasie
![]() http://blog.zabiello.com/articles/2007/01/...mplates-and-mvcno mogl bym tam osbne funkcje zaladowac do walidacji... ale wydawalo mi sie bardziej estetycznie jesli walidacja bedzie w osobnym pliku jako klasa... dlaczego to jest zle roziazanie? Ten post edytował sanchoo 27.08.2007, 14:43:38 |
|
|
![]()
Post
#20
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Nie chodzi mi o to, że umieszczenie walidacji w modelu jest złe, a jedynie o sam fakt zaistnienia tutaj relacji dziedziczenia. Tu jedyną relacją jaka jest prawdiłowa, to zawieranie, czyli wg, podręcznika php - agregacja - Obiekt Modelu zawiera obiekt Validator.
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 04:38 |