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
eVolution
post 21.03.2012, 02:12:38
Post #2





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

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


Skrobnąłem na szybko coś takiego:
  1. <?php
  2. class Kalkulator
  3. {
  4. function dodaj($liczba, $liczba2)
  5. {
  6. $this->wynik = $liczba + $liczba2;
  7. return $this;
  8. }
  9.  
  10. function odejmij($liczba, $liczba2)
  11. {
  12. $this->wynik = $liczba - $liczba2;
  13. return $this;
  14. }
  15.  
  16. function mnozenie($liczba, $liczba2)
  17. {
  18. $this->wynik = $liczba * $liczba2;
  19. return $this;
  20. }
  21.  
  22. function wynik()
  23. {
  24. return $this->wynik;
  25. }
  26. }
  27.  
  28. $kalkulator = new Kalkulator;
  29. echo $kalkulator->odejmij(2,5)->wynik();
Czy tu jest wszystko ok? I mi nie chodzi o to, żeby ktoś mnie uczył OOP, tylko o to, że mam problem z tym, co np w danej klasie powinno się znaleźć. Np co powinno być w klasie odpowiedzialnej z 1 ucznia itp tak jak np w tej podanej powyżej to wiem co powinno być, ale jak już np chodzi o zrobienie bardziej sensownej klasy to już jest problem.

Poprawcie mnie jeśli się mylę:
Mam np obiekt samochód, czyli jego metody to skręcanie, hamowanie, przyśpieszenie, zwalnianie?
Kolejne mam obiekt użytkownik, jego metody to dodaj, usuń, aktualizuj, i UserManager czyli pokaz wybranego, pokaż wszystkich etc...? Wiem głupie pytania, ale żadna książka akurat tego nie opisuje wink.gif

Ten post edytował eVolution 21.03.2012, 02:12:59
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:07