Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SOLID i Zasada jednej odpowiedzialności, jak można zastosować tą zasadę dla tych klas i takiego wywołania
Nortonek
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 29.11.2003

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


Witam

Mam prośbę o nakierowanie mnie na temat pierwszej zasady SOILID, jak można zastosować tą zasadę dla tych klas i takiego wywołania,

w pierwszej klasie odwołuję się do drugiej, jednak znając życie będzie taka sytuacja że będę musiał przekazać więcej parametrów a nie tylko ID książki

i będę musiał modyfikować 2 klasy.


  1. <?php
  2.  
  3.  
  4. class Ksiazki {
  5.  
  6. private $id_ksiazki;
  7.  
  8. function __construct($id){
  9. $this->id_ksiazki - $id;
  10. }
  11.  
  12. private function zapisz_oddanie_zniszczonej_ksiazki(){
  13. global $db, $table_ksiazki_oddane;
  14.  
  15. $result0 = $db -> Execute("UPDATE $table_ksiazki_oddane SET `oddana`= '1' WHERE `id_ksiazki`='".$this->id_ksiazki."' ");
  16.  
  17. $Ksiazki_Zniszczone = new Ksiazki_Zniszczone();
  18. $Ksiazki_Zniszczone-> insert_ksiazki_zniszczone($this->id_ksiazki);
  19. }
  20.  
  21. }
  22.  
  23.  
  24. class Ksiazki_Zniszczone{
  25.  
  26. public function insert_ksiazki_zniszczone( $id_ksiazki){
  27. global $db, $table_ksiazki_zniszczone;
  28.  
  29. $result0 = $db -> Execute("UPDATE $table_ksiazki_zniszczone SET `zniszczenie_ksiazki`= '5' WHERE `id_ksiazki`='$id_ksiazki' ");
  30. }
  31.  
  32. }
  33.  
  34. ?>


Ten post edytował Nortonek 23.02.2014, 13:45:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Nortonek
post
Post #2





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 29.11.2003

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


Wyeliminowałem globale, mam nadzieję że prawidłowo, zmieniłem nazewnictwo klas i dodałem Dependency injection w klasie Bibliotekarki

  1. <?php
  2.  
  3. $db = NewADOConnection('mysql');
  4. $Ksiazka= new Ksiazka();
  5. $Pani_Bibliotekarka = new Pani_Bibliotekarka($Ksiazka, $db);
  6.  
  7. $Ksiazka->set_id_ksiazki(1);
  8. $Pani_Bibliotekarka -> zapisz_oddanie_ksiazki();
  9.  
  10. $Ksiazka->set_id_ksiazki(2);
  11. $Pani_Bibliotekarka -> zapisz_oddanie_zniszczonej_ksiazki();
  12.  
  13.  
  14. class Tablica_SQL {
  15. static const tab_sql_ksiazki_oddane = 'tab_ksiazki_oddane';
  16. static const tab_sql_ksiazki_ozniszczone = 'tab_ksiazki_zniszczone';
  17. }
  18.  
  19. class Ksiazka {
  20. private $id_ksiazki;
  21. private $Ksiazka;
  22.  
  23. function set_id_ksiazki($id){
  24. $this->id_ksiazki = $id;
  25. }
  26.  
  27. }
  28.  
  29.  
  30. class Pani_Bibliotekarka{
  31. private $Ksiazka;
  32. private $db
  33.  
  34. function __construct(Ksiazka $Ksiazka, db $db){
  35. $this->Ksiazka = $Ksiazka;
  36. $this->db = $db;
  37. }
  38.  
  39. private function zapisz_oddanie_ksiazki(){
  40. $result0 = $this->db -> Execute("UPDATE ".Tablica_SQL::tab_sql_ksiazki_oddane." SET `oddana`= '1' WHERE `id_ksiazki`='".$this->Ksiazka->id_ksiazki."' ");
  41. }
  42.  
  43. private function zapisz_oddanie_zniszczonej_ksiazki(){
  44. $result0 = $this->db -> Execute("UPDATE ".Tablica_SQL::tab_sql_ksiazki_oddane." SET `oddana`= '1' WHERE `id_ksiazki`='".$this->Ksiazka->id_ksiazki."' ");
  45.  
  46. $Ksiazki_Zniszczone = new Ksiazki_Zniszczone();
  47. $Ksiazki_Zniszczone-> insert_ksiazka_zniszczona($this->Ksiazka->id_ksiazki);
  48. }
  49.  
  50. }
  51.  
  52.  
  53. class Ksiazka_Zniszczona{
  54.  
  55. public function insert_ksiazka_zniszczona( $id_ksiazki){
  56. $result0 = $this->db -> Execute("UPDATE ".Tablica_SQL::tab_sql_ksiazki_zniszczone." SET `zniszczenie_ksiazki`= '5' WHERE `id_ksiazki`='$id_ksiazki' ");
  57. }
  58.  
  59. }
  60.  
  61. ?>


Ten post edytował Nortonek 23.02.2014, 13:45:05
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 Aktualny czas: 13.10.2025 - 09:09