![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
witam
jesli dobrze rozumiem idee MVC to model to jest klasa z metodami ktore powinny wyrzucac jakies dane, np pobranze z bazy, albo zapisywac dane w bazie. w ktorej czesci aplikacji napisanej zgodnie z MVC powinienem zrobic stronicowanie? stworzyc metode w modelu do ktorej podam LIMIT do zapytania SQL? np model artykul metody: dodaj, pobierz_jeden, pobierz_wszystkie, pobierz_limit ? bo reszte np sprawdzenie na ktorej podstronie jest user robi kontroler? Ten post edytował AxZx 3.01.2007, 23:35:22 -------------------- aplikacje internetowe | Symfony
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 30.11.2004 Ostrzeżenie: (0%) ![]() ![]() |
Pod pojęciem MVC rozumiem wzorzec projektowy choć można to też nazwać podejściem do tworzenia aplikacji internetowych w architekturze wielowarstowej a te warstwy są 3 Model czyli warstwa logiki, (pobieranie danych z bazy, metody, baza danych, pliki itp.), View czyli widok najczęściej tutaj korzysta się ze Smarty(szablonów) korzystając z HTML bądź XHTML i ostatnia warstwa Control czyli kontroli, która steruje wykonywaniem wywoływanych akcji. Model może być klasą lub zbiorem klas, najlepiej wykorzystać w twoim przypadku Model DAO - wlaściwie to o tym piszesz może jedynie nie wiesz i tak na przykład w swojej klasie nazwijmy ja Model_article masz akcje/metode 'dodaj' powiedzmy że akcja ta jest wywoływana przez zmienną get wtedy najlepiej ustalić sobie czy akcje będę odpowiadały numerom, a może określonym nazwom lub będą identyczne z nazwami metod (to model DAO), wówczas wywołujesz adresem (to tylko przykład)
tą akcję a tak naprawdę wówczas wywołujesz/inicjujesz tą metodę, możesz również sterować tymi akcjami korzystając ze switch naprzykład mamy adres a w kontrolerze kod (fragment odpowiedzialny za sterowanie)
to tak po krótce może ci rozjaśni -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
raczej nie o to mi chodzilo,
pytania byly jednoznaczne w ktorej czesci aplikacji napisanej zgodnie z MVC powinienem zrobic stronicowanie? stworzyc metode w modelu do ktorej podam LIMIT do zapytania SQL? -------------------- aplikacje internetowe | Symfony
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 30.11.2004 Ostrzeżenie: (0%) ![]() ![]() |
chyba nie czytałeś tego co napisałem.. rozumiem, że pod pojęciem stronicowania rozumiesz kolejne wyświetlanie i pobieranie danych z bazy więc sam pomyśl, że przycisk 'następny' i 'poprzedni' itp. będzie w Widoku, pobieranie z bazy w Modelu kliknięcie na przyciski będzie powodowało wywoływanie danego polecenia na przykład będzie podawało o ile ma zostać wykonany offset tu zadziała Controller czyli wartość wg której można wyliczyć wartości od, do dla LIMIT w zapytaniu, możesz tez napisać swój komponent uniwersalny stronicowania.
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
okej dzieki:)
mniej wiecej zrozumialem czyli musze utworzyc w modelu metode z parametrami $limit_start, $limit_end. a w kontrolerze sprawdzam na ktorej podstronie jest user. wszystko jasne:) EDIT: jednak nie wszystko tak do konca jasne zalozmy ze chce skorzystac z 2 modeli mam uzytkownika ktory jest kierowca, wiec mam 2 modele: uzytkownik, kierowca (2 tabele w bazie). mecze sie teraz nad metoda dodaj2 w kontrolerze kierowca bo chcialbym zastosowac transakcje moge w kontrolerze zrobic cos takiego start transakcji uruchomienie metody dodaj modelu uzytkownik uruchomienie metody dodaj modelu kierowca zakonczenie transakcji sprawdzenie wyniku transakcji tak to bedzie wygladac? Ten post edytował AxZx 5.01.2007, 13:33:16 -------------------- aplikacje internetowe | Symfony
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Czy koniecznie musisz się trzymać wzorca MVC dosłownie? On tylko sugeruje podział na trzy podstawowe warstwy, ale przecież możesz podzielić na więcej. W swoim frame wyróżniam 4 warstwy (polecenia/widoku, kontroli, logiki i danych). Mam 2 podstawowe kontrolery - jeden steruje całą aplikacją - jej stanem i nadzoruje pracę drugiego kontrolera, który uruchamia logikę (akcje), mówiąc mu, czy i jak ma dalej działać.
Cytat start transakcji uruchomienie metody dodaj modelu uzytkownik uruchomienie metody dodaj modelu kierowca zakonczenie transakcji U mnie byłoby to coś takiego. 2 akcje (dodaj użytkownika, dodaj kierowcę) Akcja kompozyt składająca się z dwóch akcji uruchamianych przez kontroler (albo od razu przez akcję kompozytową) Można sterować np. XML'em. (uproszczone)
?action=akcjaKompozytowa Zalety są takie, ze nie musisz dodawać kolejnych dziwnych metod to modelu, a jedynie wykorzystać istniejące modele i ich metody. 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: 176 Pomógł: 0 Dołączył: 30.11.2004 Ostrzeżenie: (0%) ![]() ![]() |
wszystko można w końcu nie wszystko jeszcze zostało tak naprawdę odkryte nawet w programowaniu hehe
ale tak na serio to wszystko zależy od tego jak sobie tego kontrolera rozwiążesz możesz obmyślić jakąś strategie (Strategy pattern) dla swojego rozwiązania to już tylko kwestia dobrania jakiegoś algorytmu, poza tym tabela szybciej może odpowiadać klasie, ale to już abstrakcja ![]() Poza tym zgadzam się z powyższym u siebie mam kontroler główny i rozszerzający, który oparty jest o AJAX, czyli łącze programowanie obiektowe ze zdarzeniowym coś jak C#php ![]() Ten post edytował marast78 5.01.2007, 15:41:09 -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
wlasnie chcialem w ten sposob sobie ulatwic
czyli jeden widok z formularzem rejestracji uzytkownika (user_form.view) drugi widok z formularzem rejestracji kierowcy (driver_form.view) i do niego wrzucam widok user_form.view pozniej mam drugi rodzaj np sprzetaczka tworze widok cleaner_view.php i do niego tez wrzucam widok user_form.view to chyba wlasnie jest uproszczenie? bo chcac zmienic albo dodac jakies pole do uzytkownika np pole z ID skype'a - dodaje to pole w jednym pliku user_form.view tylko ze tak czy siak bedzie trzeba zmieniac funkcje w ktorej zapisuje dane z formularza. musze poczytach o tych wzorcach:) o MVC pisza roznie (a przynajmniej ja roznie rozumuje z opisow) ten wzorzec chyba zostal po to stworzony zeby ulatwiac, zostal oparty na doswiadczeniach programistow. -------------------- aplikacje internetowe | Symfony
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
-------------------- 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: 19.08.2025 - 10:23 |