Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> kopiowanie metod miedzy klasami, OOP
banpl
post
Post #1





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 2.11.2005
Skąd: Radomsko

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


siemka all smile.gif

niedawno zaczalem pisac jakies tak sobei aplikacje za pomoca programowania obiektowego no i napisalem sobie klase do obslugi bazy MySQL, ale chce rowniez napisac sobie klase do obslugi newsow, ale nie wiem jak przeniesc metody z klasy do bazy do klasy z newsami bez ponownego ich pisania

oto kod klasy SQL:
  1. <?
  2. class db{
  3.  
  4. private $db;
  5. private $wb;
  6. public $wynik;
  7. public $rows;
  8.  
  9. private $DBhost;
  10. private $DBuser;
  11. private $DBpass;
  12. private $DBname;
  13.  
  14. function __construct(){
  15. if(file_exists('db.php')){
  16. require('db.php');
  17. $this -> DBhost = $DBHOST;
  18. $this -> DBuser = $DBUSER;
  19. $this -> DBpass = $DBPASS;
  20. $this -> DBname = $DBNAME;
  21. }else{
  22. die('DB : brak pliku konfiguracyjnego !');
  23. }
  24. } // end __construct();
  25.  
  26. function dbConnect(){
  27. $this -> db = @mysql_connect($this -> DBhost, $this -> DBuser, $this -> DBpass) OR die ('DB : brak polaczenia z baza: '. mysql_error());
  28. $this -> wb = @mysql_select_db($this -> DBname) OR die ('DB : blad przy wyborze bazy: '. mysql_error());
  29. } // end dbConnect($host, $user, $haslo, $baza);
  30.  
  31. function __destruct(){
  32. if(is_resource($this -> db)){
  33. mysql_close($this -> db);
  34. }
  35. } // end __destruct();
  36.  
  37.  
  38. function query($query){
  39. $this -> wynik = @mysql_query($query) OR die ('DB : blad odczytu danych: '. mysql_error());
  40. } // end query($query);
  41.  
  42.  
  43. function fetch_row(){
  44. if($this -> rows = @mysql_fetch_row($this -> wynik)){
  45. return 1;
  46. }
  47. } // end fetch_row();
  48.  
  49.  
  50. function num_rows(){
  51. return @mysql_num_rows($this -> wynik);
  52. } // end num_rows();
  53.  
  54. }
  55. ?>


a tutaj mamy clase news ktora dopiero zaczynam pisac smile.gif
  1. <?php
  2. class news{
  3.  
  4. function news(){
  5.  
  6. $db -> query("SELECT * FROM news");
  7. }
  8.  
  9. }
  10. ?>


moze mi ktos pomoc bo nie wiem ;/ jak sie do tego zabrac, gdzies czytalem o dziedziczeniu czy czyms takim ale zabardzo nie wiem jak tego uzyz w tym przypadku, prosze o jakas podpowiedz smile.gif


--------------------
Warsztat :: Windows7 / Ubuntu | PHP 5 | MySQL 5 | Eclipse / NetBeans | Opera / Firefox
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
bigZbig
post
Post #2





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


Czytaj Dołączenie sterownika bazy do aplikacji
albo
Co zamiast global i GLOBALS - wzorzec Registry (Property).

Ten post edytował bigZbig 31.07.2006, 13:43:39


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
Go to the top of the page
+Quote Post
thornag
post
Post #3





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

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


  1. <?php
  2.  
  3. class news extends db {
  4.  
  5.  
  6.  
  7. function news(){
  8.  
  9.  
  10.  
  11. $db -> query("SELECT * FROM news");
  12.  
  13. }
  14.  
  15.  
  16.  
  17. }
  18.  
  19. ?>


--------------------
"Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"

Go to the top of the page
+Quote Post
Ludvik
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

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


Klasa News dziedziczy z klasy DB? Raczej nie smile.gif Klasa News raczej korzysta z DB. Musisz wkomponować obiekt z połączeniem w klasę newsów. Dyskusja była w temacie, do którego odnośnik podał bigZbig. Ja zawsze stosuję kompozycję z przekazywaniem obiektu przez konstruktor. Możliwość podstawienia dowolnego sterownika bazy przydaje się przy pisaniu testów.


--------------------
Go to the top of the page
+Quote Post
thornag
post
Post #5





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

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


@Ludvik rzeczywiscie raczej zero tu z dziedziczenia smile.gif dalem sie poniesc emocjom smile.gif Rzeczywiscie lepiej jest przekazac obiekt DB do konstruktora class'y News.

Ten post edytował thornag 31.07.2006, 20:02:08


--------------------
"Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"

Go to the top of the page
+Quote Post
banpl
post
Post #6





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 2.11.2005
Skąd: Radomsko

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


wielkie dzieki za podpowiedz smile.gif

teraz juz sobie poradze

pozdro


--------------------
Warsztat :: Windows7 / Ubuntu | PHP 5 | MySQL 5 | Eclipse / NetBeans | Opera / Firefox
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 09:56