connection = $connection; $this->structure = $structure; $this->conventions = $conventions ?: new StaticConventions; $this->cacheStorage = $cacheStorage; } /** @return void */ public function beginTransaction() { $this->connection->beginTransaction(); } /** @return void */ public function commit() { $this->connection->commit(); } /** @return void */ public function rollBack() { $this->connection->rollBack(); } /** * @param string sequence object * @return string */ public function getInsertId($name = null) { return $this->connection->getInsertId($name); } /** * Generates and executes SQL query. * @param string * @return ResultSet */ public function query($sql, ...$params) { return $this->connection->query($sql, ...$params); } /** * @param string * @return ResultSet */ public function queryArgs($sql, array $params) { return $this->connection->query($sql, ...$params); } /** * @param string * @return Table\Selection */ public function table($table) { return new Table\Selection($this, $this->conventions, $table, $this->cacheStorage); } /** @return Connection */ public function getConnection() { return $this->connection; } /** @return IStructure */ public function getStructure() { return $this->structure; } /** @return IConventions */ public function getConventions() { return $this->conventions; } /********************* shortcuts ****************d*g**/ /** * Shortcut for query()->fetch() * @param string * @return Row */ public function fetch($sql, ...$params) { return $this->connection->query($sql, ...$params)->fetch(); } /** * Shortcut for query()->fetchField() * @param string * @return mixed */ public function fetchField($sql, ...$params) { return $this->connection->query($sql, ...$params)->fetchField(); } /** * Shortcut for query()->fetchFields() * @param string * @return array|null */ public function fetchFields($sql, ...$params) { return $this->connection->query($sql, ...$params)->fetchFields(); } /** * Shortcut for query()->fetchPairs() * @param string * @return array */ public function fetchPairs($sql, ...$params) { return $this->connection->query($sql, ...$params)->fetchPairs(); } /** * Shortcut for query()->fetchAll() * @param string * @return array */ public function fetchAll($sql, ...$params) { return $this->connection->query($sql, ...$params)->fetchAll(); } /** * @return SqlLiteral */ public static function literal($value, ...$params) { return new SqlLiteral($value, $params); } }