Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]podział na klasy
perhydrol
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 11.12.2006

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


Witam,

od jakiegoś czasu eksperymentuję z obiektowym PHP, jednak moje strukturalne myślenie skutecznie mi to utrudnia.
Tylko proszę nie odsyłajcie do przeszukiwania tematów jak wielokrotnie twierdzicie iż temat był poruszany tysiące razy,
ja jednak szukając odpowiedzi w postach już istniejących na tym forum nie znalazłem satysfakcjonującej odpowiedzi.

Mam prośbę, czy mógł by ktoś mi wypisać na przykładzie sklepu internetowego podział na klasy, oraz zakwalifikować je do odpowiednich części:
Model, View, Controller

Coś w stylu listingu klas, i nie jest to z mojej strony wyręczanie się Wami, a jedynie chciał bym dostrzec jak szczegółowo należy podejść do podziału danej dziedziny sklepu internetowego na klasy. Dzięki przypisaniu ich do odpowiednich części MVC, myślę że będę mógł szybciej i lepiej zrozumieć to z czym się borykam. Dodam może że do UML-a używam "NetBeans IDE 6.7.1"

a interesujące mnie rozwiązanie to coś w stylu:

  1. class DB_Connect // klasa inicjująca połączenie z baza danych
  2. class DB_View // klasa zapytań do bazy danych
  3. .... // tu kolejne pytanie czy jest sens przechowywać wszystkie zapytania do bazy danych, np SELECT ... w jednym pliku?
  4. .... // no i jeszcze jak by mógł mi ktoś zaznaczyć która klasa do jakiej części modelu MVC się zalicza


Ten post edytował nospor 14.10.2009, 23:08:53
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




MVC robią dokładnie to co sugeruje nazwa. Różnica polega na tym, że pewne klasy nie będą miały wszystkich trzech. Przykład? Klasa połączenia z bazą danych. Zauważ, że ona nie musi mieć widoku, gdyż nigdzie nie prezentujesz danych tylko przepychasz je do innych klas. Myśl własnie w ten sposób. Jeśli chcesz jakieś dane uwidaczniać, to projektuj do tego widok. Chcesz wyciągać dane? Pomyśl o modelu. Gdy trzeba nad tym wszystkim odpowiednio popracować to nie obejdzie się bez kontrolera.. Jak więc widzisz kontroler jest w zasadzie zawsze, bo musi kierować poczynaniami i przepływem danych. Czasem niepotrzebny jest klasie model, jeśli nie operujesz na danych pobieranych z zewnątrz (baza czy pliki).
Ja osobiście robię tak, że mam zawsze główny kontroler dziedziczący po jakimś template i do niego wrzucam widoki. Jeśli któryś z widoków pobiera dane to ma on dostęp albo do dedykowanego mu modelu, albo korzysta z pewnego globalnego modelu. Jeśli zaś ten widok ma podwidoki, to mają one zazwyczaj własne kontrolery i własne widoki. Całość układa się wtedy w swego rodzaju drzewko zależności. W takiej sytuacji do widoku głównego przez główny kontroler są wysyłane mniejsze widoki korzystające z własnych kontrolerów, widoków i modeli (choć mogą korzystać z pewnego głównego modelu dla danych lub nie korzystać z modeli wcale). By je odróżnić nadaję im odpowiednie nazewnictwo. Ciekawostką dla początkujących jest choćby klasa autoryzacji. Zauważ, że nigdzie ona nie prezentuje danych, czyli jest klasą bez widoku. Ma model by pobrać dane ze źródła, Kontroler dla przepływu i obróbki danych i nic więcej nie trzeba do szczęścia.
Go to the top of the page
+Quote Post

Posty w temacie
- perhydrol   [PHP]podział na klasy   13.10.2009, 14:43:03
- - thek   MVC robią dokładnie to co sugeruje nazwa. Różnica ...   13.10.2009, 15:10:22
- - perhydrol   dzięki wielkie "thek" za zrozumiały opis...   14.10.2009, 21:12:17
- - jmail   hmmmmm. zdaje mi się czy pomyliliśmy pojęcia MVC? ...   14.10.2009, 21:22:04
- - perhydrol   wiec tak dla sprostowania, pojęć nie pomyliłem, mo...   14.10.2009, 22:52:33
- - thek   Zauważ, że przykładową klasą Użytkownik mieszasz j...   15.10.2009, 08:24:26
- - jmail   Cytat(thek @ 15.10.2009, 09:24:26 ) Z...   15.10.2009, 11:53:12
|- - dr4ko   Cytat(jmail @ 15.10.2009, 12:53:12 ) ...   15.10.2009, 14:55:42
- - fenix.robi   Ja proponuje skorzystać z fameworka CAKE'a, kt...   15.10.2009, 14:25:54
- - thek   To może jmail wyjaśnię dlaczego podałem taki a nie...   15.10.2009, 14:27:19
- - jmail   nie no to są dwie zupełnie różne rzeczy. Jeżeli ...   15.10.2009, 14:55:11
- - jmail   dr4ko czekaj czekaj. czy to nie jest tak, że model...   15.10.2009, 15:03:40
|- - dr4ko   Cytat(jmail @ 15.10.2009, 16:03:40 ) ...   15.10.2009, 15:18:10
- - jmail   no i właśnie o to chodzi. model jest tylko zbiorem...   15.10.2009, 15:24:37
- - dr4ko   Logika biznesowa powinna być zawarta w modelu, a k...   15.10.2009, 15:50:59
- - jmail   to jest Twoja opinia. moja jest taka, że jeżeli wp...   15.10.2009, 16:01:21
|- - phpion   Cytat(jmail @ 15.10.2009, 17:01:21 ) ...   16.10.2009, 12:11:49
- - dr4ko   Ok, ja się poddaję, nauczyciel ze mnie kiepski. Al...   15.10.2009, 16:23:39
- - thek   Dr4co ma IHMO rację. Przyłącze się do przykładu z ...   15.10.2009, 16:28:05
- - jmail   ale chwilę. To co dałeś to jest modyfikacja pure M...   15.10.2009, 16:29:36
- - dr4ko   Bzdura. To co podałem to jest najczystsze MVC jaki...   15.10.2009, 16:41:26
- - jmail   to jak chcesz zrobić logikę biznesową bez bazy dan...   15.10.2009, 16:54:35
- - dr4ko   A gdybym chciał zrobić aplikację obliczeniową? Np ...   15.10.2009, 18:10:32
- - jmail   no to teraz sam sobie zaprzeczasz. kalkulator albo...   15.10.2009, 18:13:04
|- - dr4ko   Cytat(jmail @ 15.10.2009, 19:13:04 ) ...   15.10.2009, 21:13:01
- - thek   jmail... my mówimy teraz o braku danych czy braku ...   15.10.2009, 20:24:18
- - perhydrol   Panowie, czytam wasze wypowiedzi i osobiście każdą...   15.10.2009, 21:51:04
- - dr4ko   Spoko, chodzi przecież o to żebyś zrozumiał. Jest ...   15.10.2009, 22:27:26
- - perhydrol   właśnie się zastanawiałem czy rozbijać MailSender_...   15.10.2009, 23:00:22
- - jmail   no dr4ko wreszcie się z czymś zgadzamy potwierdż...   16.10.2009, 00:12:59
- - thek   Dla mnie termin baza danych jest jednoznaczny i st...   16.10.2009, 11:01:45
- - dr4ko   Idealną sytuacją by było gdyby ani kontroler ani m...   16.10.2009, 12:04:50


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

 



RSS Aktualny czas: 14.10.2025 - 02:08