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ęść):
<?php class Artykuly { // extends Tresci private $cBaza; //uchwyt bazy private $artId; private $artTytul; private $artTresc; private $artAutor; private $artNotatki; private $artData; private $artCzas; private $artOdslony; private $artKategoria; private $prefix = 'testy'; // prefix do tabel w bazie danych private function __construct() { throw new Exception ("Nie można się połączyć z bazą."); } } private function getArt($id, $ile=1, $początek=0) { // umieścić funkcje pobierania w odzielnej fukncji, czy lepiej dodać do konstrukto
ra? $zapytanie = "SELECT * FROM `".$prefix."_artykuly` WHERE `id` = '".$id."' ORDER BY `id` ASC LIMIT '".$poczatek."', '".$ile."';"; throw new Exception("Błąd: Nieprawidłowe zapytanie. Sprawdź skrypt!"); } throw new Exception("Błąd: Brak artykułu o identyfikatorze ".$id."."); } // i tutaj nachodzi mnie pytanie, jak wydobyć kilka artykułów? Czy mogę spokojnie użyć pętli foreach? $this->artID = $id; $this->artTytul = $dane['tytul']; $this->artTresc = $dane['tresc']; $this->artAutor = $dane['autor']; [..] // pozostałe przypisy do właściwości klasy $this->artKategoria = $dane['kategoria']; } function __get($parametr) { // wiadomo co to za funkcja... i tak tylko na tymczasem... return $this->dane[$parametr]; } return ''; } private function usunArt($id) { // czy mogę w tym miejscu utowrzyć egzemplarz tej klasy? // $artDoUsuniecia = new Artykuly(); // $artDoUsuniecia->getArt($id); // if (!isset($artDoUsuniecia->artTytul)) { // echo 'Błąd: Brak artykułu o identyfikatorze '. $id .', który chcesz usunąć!'; // } // czy muszę jeszcze raz pisać kod, aby sprawdzić czy dany artykuł istnieje? // czy może istnieje jakiś inny sposób, aby sprawdzić czy ten artykuł został zapis
any w bazie, uzywając np. '$this->getArt($id)'? $zapytanie = "DELETE FROM `".$prefix."_artykuly` WHERE `id` = '".$id."';"; throw new Exception("Błąd: Nieprawidłowe zapytanie. Sprawdź skrypt!"); } } private function getKategoria($id) { return $this->artKategoria; } private function getNextArtID($id) { [..] // inne fukcje } } ?>
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...