Witam.
Pytanie- czy w dobra strone kombinuje . Otoz :
Wymyslilem sobie po czasie troche inne podejscie do kodowania w OOP (gdzie dalej jestem very pro noob) . Wczesniej uzywalem pustego contenera typu - user, i managera do zarzadzania tym userem.
Teraz odszedlem od tej koncepcji i managera juz nie potrzebuje tylko tworze sobie rozbudowany obiekt (model) user. Jednak, model user posiada spora czesc funkcji ktore inne obiekty typu - product, news takze posiadaja , np. create, update, find itp. wiec chce uproscic sobie pisanie ciaglych podstawowych funkcji i zrobic tak aby moj obiekt modelu rozszerzal kolejna klase (np. abstractRecord) ktora te funkcje bedzie dla niego wykonywac plus dodatkowo moze i implementowac iterator( to w przyszlosci jak ogarne najpierw to, ale nie wiem czy dobrze mysle wiec potrzebuje pomocy)
Czy dobrze mysle ? I teraz tona pytan :
  1.  
  2. class User_Model extends mojActiceR{
  3.  
  4.  
  5. private $name;
  6.  
  7. public function __construct($id = null)
  8. {
  9. parent::__construct();
  10. if($id != null)
  11. {
  12. $sql = $this->db->prepare("SELECT name FROM users where id = :id");
  13. $sql->bindParam(':id' , $id);
  14. $sql->execute();
  15. $result = $sql->fetchAll();
  16. foreach($result as $row)
  17. {
  18. $this->name = $row['name'];
  19. }
  20. }
  21. else{
  22.  
  23. $this->type = "guest";
  24. }
  25. }
  26.  
  27. public function getName() {
  28. return $this->name;
  29. }
  30.  
  31. public function setName($name) {
  32. $this->name= $name;
  33. }
  34.  
  35.  

I teraz klasa mojActiceR:
  1.  
  2. class mojActiceR{
  3.  
  4.  
  5. protected $db;
  6.  
  7. private $hostname = 'localhost';
  8. private $dbname = 'bla bla';
  9. private $username = 'bla bla';
  10. private $password = '';
  11.  
  12. // No i teraz potrzebuje czegos aby zmapowac klase user , wziac jej private vary i wykozystac przy pisaniu uniwersalnych zapytan sql. I na to szukam sposobu - czy reflection class, czy jak to sie robi ?
  13. // dodatkowo wydaje mi sie ze moge zrobic w klasie user jakis array aby w nim przypisac ze private $name ma byc do 'name' w bazie danych tak ze jakbym zmienil nazwe kolumny bazy danych mogl tylko przypisac inna //nazwe i reszta smiga jak ma.
  14.  
  15. public function __construct() // zakladam ze w tej klasie powinienem laczyc sie z baza danych.
  16. {
  17. $database = new Database($this->hostname, $this->dbname, $this->username, $this->password);
  18. $this->db = $database->getConnection();
  19. }
  20.  
  21. public function create()
  22. {
  23.  
  24. }


To chyba na tyle, pomoze mi ktos ? dobrze mysle , uproszcze sobie tak zadanie. Podkresle ze chce tego uzywac do prostych zapytan, zadnego ORM'a nie proboje robic do inner joinow czy innych wygibasow. Cala skomplikowana reszte bede robil juz w modelu klasy, bez super uniwersalnosci. Jezeli to co proboje zrobic tylko przyspozy mi problemow lub jest zlym rozwiazaniem prosze powiedzcie, nie wiem czy jak dalej rozwine troche swoj projekcik czy to tylko nie bedzie mi przeszkadzac zamiast pomagac.
Pozdrawiam.