Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Podjąłem decyzje -> przechodze na OO
Forum PHP.pl > Forum > PHP > Object-oriented programming
become
Licze na waszą pomoc. Zalezaloby mi rowniez na wymianie kontaktów.
Bardzo szybko sie uczę, wiec nie trzeba mi wiele razy coś tłumaczyć.

Do te pory stosowałem MVC. To znaczy w sensie logicznym, bo jednak stosowałem programowanie proceduralne.
Nadszedł jednak moment, aby przejść ciut wyzej.

Nie ma to jak nauka na przykladach. Wzialem pierwszy prostszy przyklad. Chodzi mi logiczny przepływ informacji pomiędzy obiektami.

Założenia:
Mamy Artykuł, Autor, Lista zajawek artykułu danej Kategori, Lista artykułów, komentarze artykułu. Oceny artykulu.

Artykul to:
data, tytuł, wstep, tresc, itp.

Autor to:
imie, nazwisko, hobby itp.

Teraz: Autor pisze artykuł. Jak powiazac te 2 obiekty ze sobą ?
Artykul ma komentarze i oceny. Jak stworzyc i powiazac te 2 klasy ?

Wiem, ze mozna zrobic zajawke artykulu, która bedzie zawierac tylko tytul, wstep i autora. Nastepnie ta zajawke mozna rozszerzyc na klase Artykul, ktora to klasa bedzie zawierac wszystko.
Lista artykulow to moze byc klasa, ktora zwraca np. tablice obiektow "zajawka".

Którą z tych ksiażek warto przeczytać w pierwszej kolejnosci ?

PHP5 Zaawansowane programowanie.
Projektowanie zorientowane obiektowo. Wzorce projektowe.
Programowanie zorientowane obiektowo. Wydanie II.
matix
Pierwsza moja uwaga, to na OOP się nie przechodzi przez podjęcie dezycji, tylko poprzez wieksze doświadczenie z PHP i większym rozumieniem teorii - to kazdy musi przeżyć, kto ma zamiary trochę wgłębić się w tajniki programowania ;>

Ogólnie jak mówisz o tych tutaj powiązaniach to to nie ma nic wspólnego z PHP/ MVC tylko bardziej z zapytaniem SQL biggrin.gif

Jeśli chodzi o jakieś luźniejsze powiązania to możesz to zrobić np tak:

  1. <?
  2. class model {
  3. public function getUserData($sAuthor, $aParams)
  4. {
  5. $this->db->where('nick', $sAuthor);
  6. $this->db->select($aParams);
  7. return $this->db->get('users');
  8. }
  9.  
  10. public function getArticle($iKey)
  11. {
  12. $this->db->where('id', $iKey);
  13. $this->db->select('body');
  14. $aArticle = $this->db->get('articles');
  15.  
  16. return array($aArticle, $this->getUserData($aArticle->author, array('imie', 'nazwisko', 'ranga')));
  17. }
  18. }
  19.  
  20. class controller {
  21. public function article()
  22. {
  23. $iArticleId = $this->uri->segment(3); // pobierasz z routera np.. id
  24.  
  25. $this->load->model('model');
  26. $adata['query'] = $this->model->getArticle($iArticleId);
  27.  
  28. $this->load->view('articles_view', $adata);
  29. }
  30. }
  31.  
  32. class view {
  33. public function articles_view($adata)
  34. {
  35. print_r($adata);
  36. }
  37. }
  38. ?>


Nie wiem czy o to chodziło, ale myśle, że tak:) Przede wszystkim musisz se swój styl wyrobić. Każdy programista pisze inaczej (ja np. piszę [jak się wiele osób po tym kodzie domyśli] na Code Igniterze. [dodałem sobie klase View;p])

Btw. co do książek - kup sobie byle jaką, poczytaj, postudiuj, weź, ściągnij Frameworka i pracuj biggrin.gif W necie są video tutoriale do frameworków [pozdrawiam youtube.com biggrin.gif] więc nie ma problemu z zrozumieniem ich. Pozatym kazdy liczący się fw posiada dobry manual. Jak już zrozumiesz to wszystko, to kodź rózne serwisy biggrin.gif
Btw. Nie rób frameworka, proszę cię, tego jest na kopy, a i tak korzysta się z tych najlepszych. Jest tyle wszystkich porządnych Fw (runy on rails[ruby], symfony, ci, django [python]) że na prawdę nie ma sensu robić nowego tongue.gif
Ps2 - nie komentujcie tego co za frameworki wypisałem, od tego jest inny topic.

Uff, to się rozpisałem.

Pozdrawiam,
Matix smile.gif
become
dzieki za info, aczkolwiek to co napisales to nie to o co mi chodzilo. az tak do przodu nie wybiega smile.gif

chodzilo mi o zaprojektowanie klas i zaleznosci pomiedzy nimi.
np. jak powinna wygladac prawidlowa zaleznosc pomiedzy klasa reprezentujaca artykul a reprezentujaca autora ?
Rozumiem, ze artykul zawiera wlasciwosc, ktora jest obiktem autor questionmark.gif
phpion
Cytat(become @ 18.11.2007, 16:59:46 ) *
Rozumiem, ze artykul zawiera wlasciwosc, ktora jest obiktem autor questionmark.gif

Dokładnie tak smile.gif
sanchoo
dyskusji na temat MVC na tym forum juz bylo sporo.. polecam poczytac. naprawde warto smile.gifsmile.gif
Przez 2 meisiace bylem przekonany ze uzywam MVC a wyszlo ze stosuje DAO (http://wortal.php.pl/wortal/artykuly/framework/frameworki_dla_php_czyli_wydajne_tworzenie_aplikacji_www/budujemy_wlasny_framework)
Powiem Ci jakie ja wnioski wyciagnolem z tego forum o MVC sprawa ejst prosta stosuj MVC nie 3ymajac sie sztywno zasad bo zeswirujesz.... kazdy ci powie co innego smile.gif
na webcity.pl chyba o mvc jest ciekawy artykul.. koniecznie porownaj go z DAO....
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.