Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kopiowanie metod miedzy klasami
Forum PHP.pl > Forum > PHP
banpl
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
thornag
  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. ?>
Ludvik
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.
thornag
@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.
banpl
wielkie dzieki za podpowiedz smile.gif

teraz juz sobie poradze

pozdro
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.