Mam oto taki oto plik ktory zawiera dwie klasy Table oraz Row - jest to zalazek wzorca Active Record ale to narazie niewaznie, zreszta z tego co widze na forum nikt nie ma pojecia jak zbudowac Active Record wiec przedstwawiam plik a pozniej pytanie :
<?php require 'class.Database.php'; class Table { public $tableName; function find($id) { throw new Exception('Error finding row'); } } function setTableName($tableName) { return $this->tableName = $tableName; } } class Row { public $token; public function setToken($token) { return $this->token = $token; } function insert() { throw new Exception('Error inserting row'); } } function update() { } function delete() { } } try { Table::$db = new MysqlDatabase('localhost','root', 'wmateusz', 'spam'); $tabelka = new Table; $tabelka->setTableName('tokens'); $tabelka->find(2); $wiersz = new Row; $wiersz->setToken('kot'); $wiersz->insert(); } catch(Exception $e){ }
No wiec mam tutaj sobie klase Table w ktorej znajduje sie metoda setTableName, i moje pytanie brzmi : co zrobic zebym nie musial w klasie Row drugi raz deklarowac metody setTableName i mial jednoczesnie dostep do ostatnio uzywanej zmiennej $tableName, zaznacze ze zrobienie klasy przodka dla tych obu klas jest niemozliwe poniewaz te klasy same beda posiadaly potomkow a z tego co wiem wielodziedziczenie w php nie jest mozliwe.......
No i moze od razu drugie pytanie :
Co zrobic zeby nie powtarzac tej linijki :
Table::$db = new MysqlDatabase('localhost','root', 'wmateusz', 'spam');
Dla klasy Row.....