Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> OOP i projektowanie
eVolution
post 20.03.2012, 18:34:00
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 20.03.2012

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


Witam,
Jako, że dopiero zaczynam naukę OOP, chciałbym się Was zapytań, czy jest to dobrze napisana klasa.

Klasa do obsługi bazy danych
  1. <?php
  2.  
  3. class DB
  4. {
  5. public function __construct()
  6. {
  7. try
  8. {
  9. $this->baza = new PDO('mysql: host=localhost; dbname=db', 'login','pass');
  10. }
  11. catch(PDOException $e)
  12. {
  13. throw new Exception($e->getMessage());
  14. }
  15. }
  16.  
  17. public function prepare($query)
  18. {
  19. return $result=$this->baza->prepare($query);
  20. }
  21. }
  22.  
  23. ?>


Klasa do obsługi użytkownika czyli dodanie, kasowanie
  1. <?php
  2. class User
  3. {
  4. protected $_db;
  5.  
  6. public function __construct(DB $db)
  7. {
  8. $this->_db = $db;
  9. }
  10.  
  11. public function add($login, $pass)
  12. {
  13. $result = $this->_db->prepare("INSERT INTO user VALUES(:login, :pass)");
  14. $result->bindParam(':login', $login, PDO::PARAM_STR);
  15. $result->bindParam('pass', $pass, PDO::PARAM_STR);
  16.  
  17. if(!$result->execute()){
  18. throw new Exception("Wystąpił błąd podczas dodawania usera.");
  19. }
  20. }
  21.  
  22. public function delete($id)
  23. {
  24. $result = $this->_db->prepare("DELETE FROM user WHERE id=:id");
  25. $result->bindParam(':id', $id, PDO::PARAM_INT);
  26.  
  27. if(!$result->execute()){
  28. throw new Exception("Wystąpił błąd podczas usuwania usera.");
  29. }
  30. }
  31. }

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?

Ten post edytował eVolution 20.03.2012, 18:36:29
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 Wersja Lo-Fi Aktualny czas: 25.07.2025 - 10:05