Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: uproszczenie klasy
Forum PHP.pl > Forum > PHP > Object-oriented programming
acztery
witam, nie wiem co zastosować wieć pytam i tytul tematu moze mało zrozumiały ale do rzeczy...

mam taki np kod:

  1. <?php
  2. final function aktLang($_id)
  3. {
  4. // activ langue
  5. $lang = DB_DataObject::factory('lang');
  6. $lang->get($_id);
  7. $lang->Act = 'Y';
  8. return $lang->update();
  9. }
  10.  
  11.  
  12. final function blockLang($_id)
  13. {
  14. // blocked langue
  15. $lang = DB_DataObject::factory('lang');
  16. $lang->get($_id);
  17. $lang->Act = 'N';
  18. return $lang->update();
  19. }
  20. ?>


Jak widać każda z tych metod jest powiązana baza danych ( tabela lang ) i moje pytanie.

  1. <?php
  2. $lang = DB_DataObject::factory('lang');
  3. ?>


można zastosować jakiś interfejs który bedzie sobie otwieral polaczenie z te daną table i w samym metodach bede mogł wywalić to : $lang = DB_DataObject::factory('lang');

chcialem to zrobic jaka interfejs ale cos mi w ogole nie wyszlo

konstruktor w tej klasie gdzie sa te metody mnie nie interesuje. ( ile sie tak da )
LBO
To jeden ze sposobów:

  1. <?php
  2. /*
  3.  * Model
  4.  *
  5.  * @var DB_DataObject
  6.  */
  7. protected $_dataObject;
  8.  
  9. // some methods
  10.  
  11. /*
  12.  * @param DB_DataObject $dataObject 
  13.  * @return void
  14.  */
  15. final public function setDataObject($dataObject)
  16. {
  17. $this->_dataObject = $dataObject;
  18. }
  19.  
  20. /*
  21.  * @param mixed $_id
  22.  * @return integer|true
  23.  */
  24. final function aktLang($_id)
  25. {
  26.  $this->_dataObject->get($_id);
  27.  $this->_dataObject->Act = 'Y';
  28.  return $this->_dataObject->update();
  29. }
  30.  
  31. /*
  32.  * @param mixed $_id
  33.  * @return integer|true
  34.  */
  35. final function blockLang($_id)
  36. {
  37. $this->_dataObject->get($_id);
  38. $this->_dataObject->Act = 'N';
  39. return $this->dataObject->update();
  40. }
  41.  
  42. // some methods
  43. }
  44. ?>


i oczywiście przykład użycia:

  1. <?php
  2. $someClass->setDataObject(DB_DataObject::factory('lang'));
  3. ?>


Możesz pokombinować jeszcze z tym..
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.