Есть классы update, request, insert (это классы для работы с бд, обертка для стандартного sql) и они находятся в разных файлах. мне нужно, допустим в классе products методы из класса requset и insert. сейчас я могу только в классе produtcs сделать extends класса request но не могу получить методы класса insert
Можно использовать композицию
private $requestData;
private $updateData;
private $insertData;
public function __construct() {
$this->requestData = new \core\classes\db_wrapper\request;
$this->updateData = new \core\classes\db_wrapper\update;
$this->insertData = new \core\classes\db_wrapper\insert;
}
class products
class Products extends \core\classes\db_wrapper\request {
//__construct
// получить товар по id
public function getById(int $int) {
// тут можно написать обычный sql
//но у меня есть обертка для sql которая находится в классе request
return $this->request([
'table_name' => 'products',
'col_list' => '*',
'base_query' => ' WHERE product_id = :id ',
'query' => [
'query' => '...',
'joins' => '...',
'order' => '...',
'limit' => '...',
],
'bindList' => [
':id' => $id
]
])->first()->get();
}
public function editProducts(array $arr) {
// тут также могу сделать сдандартный sql
// но мне нужно использовать методы класса update и как в примере выше изменить данные товара
}
}
для этого мне нужно наследовать два класса.
Как мне наследовать внутри класса два других класса