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
 
Start new topic
Odpowiedzi
viking
post 22.03.2012, 18:54:30
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Ale to wcale nie znaczy że musisz tylko do tych się ograniczać. Oprócz większych Jak ZF, Symfony czy przytoczona Kohana jest też sporo całkiem ciekawych projektów. Jest Yii, jest pisany trochę na wzór Sinatry (Ruby) Laravel czy w końcu http://lithify.me/. A przytaczam tylko skupiające większą społeczność i aktywnie rozwijane. Wszystkie też są sporo szybsze niż ZF i Symfony.


--------------------
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: 14.08.2025 - 20:23