a teraz już zgłupiałem, co ma metoda z parenta wspólnego z interface?
Kod
Fatal error: Declaration of Framework\Models\Master\MasterModel::setData() must be compatible with Framework\Models\Master\ModelInerface::setData($id) in C:\xampp\htdocs\lpcms\Framework\Models\Master\TableUsers.php on line 18
interface ModelInerface {
public function __construct();
public function setData($id);
public function __set($key, $value);
public function __get($key);
public function getAll($order = null);
public function save();
public function getData($id = null);
public function delete($id);
}
trait ModelTraits {
public function setData($id) {
parent::setData($this->table, $this->columns, $id);
}
public function __set($key, $value) {
$this->set($this->table, $key, $value);
}
public function __get($key) {
return $this->get($this->table, $key);
}
public function getAll($order = null) {
return parent::getAll($this->table, $this->columns, $order);
}
public function save() {
parent::save($this->table);
}
public function getData($id = null) {
if ($id)
$this->setData($id);
return parent::getData($this->table);
}
public function delete($id) {
parent::delete($this->table, $id);
}
}
class TableUsers extends MasterModel implements ModelInerface {
private $table = 'users';
private $columns = array('id', 'mail', 'pass', 'level', 'firstname', 'lastname', 'lang');
public function __construct() {
parent::__construct($this->table, $this->columns);
}
use ModelTraits;
// cut
}
class MasterModel {
public $data;
public function __construct($table, $columns) {
foreach ($columns as $value) {
$this->data[$table][$value] = null;
}
}
public function setData($table, $columns, $id) {
$query = new QueryBuider();
$query->setColumns($columns);
$query->setFrom($table);
$query->addWhere('id', $id);
$sql = \Framework\Libs\Sql::instance();
$data = $sql->getSingleRow($query->getSelect());
foreach ($columns as $value) {
$this->data[$table][$value] = $data[$value];
}
}
// cut
}