Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> klasa Artykuly, Czy to dobry tok rozumowania OOP? Czy można to zoptymalizować?
l05i3k
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 31.08.2006
Skąd: Stalowa Wola

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


Witam,
jestem początkujący w OOP i mam kilka wątpliwości i pytan w związku z klasami. Napisałem przykładową klasę (właściwie jej część):
  1. <?php
  2. class Artykuly { // extends Tresci
  3.  private $cBaza; //uchwyt bazy
  4.  private $artId;
  5.  private $artTytul;
  6.  private $artTresc;
  7.  private $artAutor;
  8.  private $artNotatki;
  9.  private $artData;
  10.  private $artCzas;
  11.  private $artOdslony;
  12.  private $artKategoria;
  13.  private $prefix = 'testy'; // prefix do tabel w bazie danych
  14.  
  15.  private function __construct() {
  16. $this->cBaza = pg_connect ('user=user password=haslo dbname=baza');
  17.  
  18. if (!is_resource($this->cBaza)) {
  19.  throw new Exception ("Nie można się połączyć z bazą.");
  20. }
  21.  }
  22.  
  23.  private function getArt($id, $ile=1, $początek=0) {
  24. // umieścić funkcje pobierania w odzielnej fukncji, czy lepiej dodać do konstrukto
    ra?
  25. $zapytanie = "SELECT * FROM `".$prefix."_artykuly` WHERE `id` = '".$id."' ORDER BY `id` ASC LIMIT '".$poczatek."', '".$ile."';";
  26. $res = pg_query($this->cBaza, $zapytanie);
  27. if (!is_resource($res)) {
  28.  throw new Exception("Błąd: Nieprawidłowe zapytanie. Sprawdź skrypt!");
  29. }
  30.  
  31. if (!pg_num_rows($res)) {
  32.  throw new Exception("Błąd: Brak artykułu o identyfikatorze ".$id.".");
  33. }
  34.  
  35. // i tutaj nachodzi mnie pytanie, jak wydobyć kilka artykułów? Czy mogę spokojnie użyć pętli foreach?
  36. $dane = pg_fetch_array($res);
  37. $this->artID = $id;
  38. $this->artTytul = $dane['tytul'];
  39. $this->artTresc = $dane['tresc'];
  40. $this->artAutor = $dane['autor'];
  41. [..] // pozostałe przypisy do właściwości klasy
  42. $this->artKategoria = $dane['kategoria'];
  43.  }
  44.  
  45.  function __get($parametr) { // wiadomo co to za funkcja... i tak tylko na tymczasem...
  46. if (isset($this->dane[$parametr])) {
  47.  return $this->dane[$parametr];
  48. }
  49. return '';
  50.  }
  51.  
  52.  private function usunArt($id) {
  53. // czy mogę w tym miejscu utowrzyć egzemplarz tej klasy?
  54. // $artDoUsuniecia = new Artykuly();
  55. // $artDoUsuniecia->getArt($id);
  56. // if (!isset($artDoUsuniecia->artTytul)) {
  57. // echo 'Błąd: Brak artykułu o identyfikatorze '. $id .', który chcesz usunąć!';
  58. // }
  59. // czy muszę jeszcze raz pisać kod, aby sprawdzić czy dany artykuł istnieje?
  60. // czy może istnieje jakiś inny sposób, aby sprawdzić czy ten artykuł został zapis
    any w bazie, uzywając np. '$this->getArt($id)'?
  61.  
  62. $zapytanie = "DELETE FROM `".$prefix."_artykuly` WHERE `id` = '".$id."';";
  63. $res = pg_query($this->cBaza, $zapytanie);
  64. if (!is_resource($res)) {
  65.  throw new Exception("Błąd: Nieprawidłowe zapytanie. Sprawdź skrypt!");
  66. }
  67.  }
  68.  
  69.  private function getKategoria($id) {
  70. return $this->artKategoria;
  71.  }
  72.  
  73.  private function getNextArtID($id) {
  74. [..] // inne fukcje
  75.  }
  76.  
  77. }
  78. ?>


Większość zastanawiających mnie rzeczy zamieściłem w komentarzach w kodzie, byłbym wdzieczny, gdyby ktoś rozwiał moje wątpliwości...
Chciałbym się dowiedzieć, czy mój tk rozumowania OOP jest prawidłowy? Czy można ten fargment klasy jakoś zoptymalizować?

Z góry dziękuję, za wszelkie sugestie...
Go to the top of the page
+Quote Post

Posty w temacie


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: 21.08.2025 - 00:47