Jako, że dopiero zaczynam naukę OOP, chciałbym się Was zapytań, czy jest to dobrze napisana klasa.
Klasa do obsługi bazy danych
<?php class DB { public function __construct() { try { $this->baza = new PDO('mysql: host=localhost; dbname=db', 'login','pass'); } catch(PDOException $e) { throw new Exception($e->getMessage()); } } public function prepare($query) { return $result=$this->baza->prepare($query); } } ?>
Klasa do obsługi użytkownika czyli dodanie, kasowanie
<?php class User { protected $_db; public function __construct(DB $db) { $this->_db = $db; } public function add($login, $pass) { $result = $this->_db->prepare("INSERT INTO user VALUES(:login, :pass)"); $result->bindParam(':login', $login, PDO::PARAM_STR); $result->bindParam('pass', $pass, PDO::PARAM_STR); if(!$result->execute()){ throw new Exception("Wystąpił błąd podczas dodawania usera."); } } public function delete($id) { $result = $this->_db->prepare("DELETE FROM user WHERE id=:id"); $result->bindParam(':id', $id, PDO::PARAM_INT); if(!$result->execute()){ throw new Exception("Wystąpił błąd podczas usuwania usera."); } } }
I oczywiście osobno UserManger czyli odpowiedzialna za pobranie danych typu login, logowanie etc...
Czy w tym kodzie jest wszystko ok? Kolejna sprawa, blok try - catch dawać w metodach w klasie, czy w miejscu gdzie dana metoda jest wywołana?