<?php /** * Query * * Free Query Builder / Database Abstraction Layer * * @package Query * @author Timothy J. Warren * @copyright Copyright (c) 2012 * @link https://github.com/aviat4ion/Query * @license http://philsturgeon.co.uk/code/dbad-license */ // -------------------------------------------------------------------------- /** * Abstract class defining database / table creation methods * * @package Query * @subpackage Query */ abstract class DB_Util { /** * Reference to the current connection object */ private $conn; /** * Save a reference to the connection object for later use * * @param object &$conn */ public function __construct(&$conn) { $this->conn =& $conn; } // -------------------------------------------------------------------------- /** * Enable calling driver methods * * @param string $method * @param array $args */ public function __call($method, $args) { if (method_exists($this->conn, $method)) { return call_user_func_array(array($this->conn, $method), $args); } return NULL; } // -------------------------------------------------------------------------- // ! Abstract Methods // -------------------------------------------------------------------------- /** * Get database-specific sql to create a new table * * @abstract * @param string $name * @param array $columns * @param array $constraints * @param array $indexes * @return string */ abstract public function create_table($name, $columns, array $constraints=array(), array $indexes=array()); /** * Get database-specific sql to drop a table * * @abstract * @param string $name * @return string */ abstract public function delete_table($name); /** * Return an SQL file with the database table structure * * @abstract * @return string */ abstract public function backup_structure(); /** * Return an SQL file with the database data as insert statements * * @abstract * @return string */ abstract public function backup_data(); }