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
perhydrol
post
Post #2





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

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


Panowie, czytam wasze wypowiedzi i osobiście każdą jedną uważam za bardzo ciekawą i bardzo istotną, ponieważ cała ta "debata" uzmysławia mi masę rzeczy do jakich doszedł bym pewnie za jakiś czas.
Jak już wcześniej wspominałem analizowałem działanie Zend Framework-a, i w nim znajduje się podział na klasy w sposób

Cytat
klasyWidoku
klasyKontrolera
KlasyModelu


od razu zauważalna jest duża przejrzystość kodowania w taki sposób, łatwo odnaleźć cześć kodu odpowiadającą za konkretną funkcjonalność

Przykładowo ja wypisałem sobie na kartce papieru jak to zwykle robię przed zakodowaniem czegoś, listę funkcji jakie będzie wymagał system aby prawidłowo funkcjonował, i staram się je zakwalifikować do poszczególnych "warstw", wzorca MVC tyle że właśnie stanąłem przed problemem w momencie gdy zaszła potrzeba zdecydować czy ma ona należeć do Modelu, czy też Kontrolera
a chciał bym wyrabiać od początku sobie nawyk kodowania w taki sposób by aplikacje były skalowalne.
Ostatni post "thek"-a zawiera mocne argumenty i trzyma się to wszystko kupy, nie mowie że "dr4ko" i "jmail" słabo argumentują.

przepraszam że tak uparłem się tych moich własnych przykładów i tak nimi Was molestuję, ale czy taki podział zmierza w dobra stronę?
prosi bym o korektę z małym komentarzem

  1. //::
  2. class MailSender_model{
  3. function _constructor()
  4. {..........}
  5. function potwierdzRejestracje()
  6. {..........}
  7. function rzadanieZmianyHasla()
  8. {..........}
  9. function rzadanieWystawieniaOpini()
  10. {..........}
  11. }
  12. //::
  13. class Zamowienia_model{
  14. function _constructor()
  15. {..........}
  16. function dodajZamowienieDoBazyDanych() //---a może ta metoda powinna być w klasie kontroler (IMG:style_emoticons/default/questionmark.gif)
  17. {..........}
  18. function dodajPunktyRabatuUzytkownikowi()
  19. {..........}
  20. function odejmijPunktyRabatuUzytkownikowi()
  21. {..........}
  22. function zmienStatusZamowienia() //---jeśli DotPay potwierdził
  23. {..........}
  24. }
  25. //::
  26. class Zamowienia_widok{
  27. function _constructor()
  28. {..........}
  29. function listaZamowienUzytkownika()
  30. {..........}
  31. function szczegolyZamowienUzytkownika()
  32. {..........}
  33. function listaZamowienWszystkich() //---w PA
  34. {..........}
  35. function szczegolyWybraneZamowienie() //---w PA
  36. {..........}
  37. }
  38. //::
  39. class Koszyk_model{
  40. function _constructor()
  41. {..........}
  42. function dodajProduktDoKoszyka()
  43. {..........}
  44. function usunProduktZKoszyka()
  45. {..........}
  46. function wyczyscKoszyk()
  47. {..........}
  48. function przeliczRabatKoszyka()
  49. {..........}
  50. }
  51. //::
  52. class Koszyk_widok{
  53. function _constructor()
  54. {..........}
  55. function pokazKosyzk()
  56. {..........}
  57. function pokazIleRabatuMam()
  58. {..........}
  59. }
  60. //::
  61. class Uyztkownik_model{
  62. function _constructor()
  63. {..........}
  64. function rejestrujUyztkownika() //---dodaj ?
  65. {..........}
  66. function zmienHaslo()
  67. {..........}
  68. function zmienWybraneDane()
  69. {..........}
  70. function Logowanie()
  71. {..........}
  72. function Wzlogowanie()
  73. {..........}
  74. }


tyle ze z tym kontrolerem to już sobie tak namieszałem w głowie ze nie wiem co w nim umieścić, pasuje mi po prostu zwykły switch jak to robilem dotychczas
hehehhe
  1. switch($link_function)
  2. {
  3. //::Basket -------------------
  4. case "add_item": { $_basket -> add_item(intval($_GET['id_item']), 1); break; }
  5. case "update_item": { $_basket -> update_item($_GET['id_item'], $_GET['count_item']); break; }
  6. case "del_item": { $_basket -> del_item($_GET['id_item']); break; }
  7. case "buy_items": { $_basket -> buy_items(); break; }
  8. }


Ten post edytował perhydrol 15.10.2009, 22:11:11
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: 18.10.2025 - 10:44