beardedman
@beardedman
full stack web developer

Как переопределить метод db?

Есть такой класс добавления заказа:
require_once('Simpla.php');

class Orders extends Simpla
{
        public function add_order($order)
	{
		$order = (object)$order;
		$order->url = md5(uniqid($this->config->salt, true));
		$set_curr_date = '';
		if(empty($order->date))
			$set_curr_date = ', date=now()';
		$query = $this->db->placehold("INSERT INTO __orders SET ?%$set_curr_date", $order);
		$this->db->query($query);
		$id = $this->db->insert_id();		
		return $id;
	}
}

Класс соединения с базой:
require_once('Simpla.php');

class Database extends Simpla
{
public function connect()
	{
		// При повторном вызове возвращаем существующий линк
		if(!empty($this->link))
			return $this->link;
		
		// Иначе пытаемся подключиться
		if(!$this->link = mysql_connect($this->config->db_server, $this->config->db_user, $this->config->db_password))
		{
			trigger_error("Could not connect to the database. Check the config file.", E_USER_WARNING);
			return false;
		}
		if(!mysql_select_db($this->config->db_name, $this->link))
		{
			trigger_error("Could not select the database.", E_USER_WARNING);
			return false;
		}
		
		// Настраиваем соединение
		if($this->config->db_charset)
			mysql_query('SET NAMES '.$this->config->db_charset, $this->link);		
		if($this->config->db_sql_mode)		
			mysql_query('SET SESSION SQL_MODE = "'.$this->config->db_sql_mode.'"', $this->link);
		if($this->config->timezone)		
			mysql_query('SET SESSION time_zone = "'.$this->config->db_timezone.'"', $this->link);			
		
		return $this->link;
	}
}

Есть конфиг с дб. Привел метод соединения с дб. Как мне его переопределить в методе добавления заказа в бд?
  • Вопрос задан
  • 157 просмотров
Решения вопроса 1
именно в методе добавления - никак. можно создать новый класс DatabaseEx extends Database, в нем переопределить метод соединения, а в методе добавления вместо использования $this->db создавать и использовать инстанс класса DatabaseEx
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы