From 56a6dda13bb85b25f590fc8a64535bb53c3c2fd2 Mon Sep 17 00:00:00 2001 From: Malf Furious Date: Mon, 6 Feb 2017 00:47:55 -0500 Subject: Update database API The abstract functions of database have been made protected and their names prefixed with '_'. The database class has been given new static functions query() and esc(), which call the _query() and _esc() function from the database instance object. This change was made to address the use of db routines from static contexes. Calls like `database::get()->query()` which mix static and instance function access operators, can now be `database::query()`, and all singleton is abstracted away; the instance's destructor continues to close the db connection. --- app/class/database.class.php | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'app/class/database.class.php') diff --git a/app/class/database.class.php b/app/class/database.class.php index 4f26c45..c0f13d7 100644 --- a/app/class/database.class.php +++ b/app/class/database.class.php @@ -33,7 +33,7 @@ abstract class database */ public function __destruct() { - $this->close(); + $this->_close(); } /* @@ -41,7 +41,7 @@ abstract class database * first call to this function. This function will need maintained * as new DBMSs are supported. */ - public static function getInstance() : database + private static function getInstance() : database { // TODO } @@ -50,9 +50,26 @@ abstract class database * These functions are to be implemented by DBMS extensions, * providing a uniform interface to database engines. */ - public abstract function close() : void; - public abstract function query(string $query) : array; - public abstract function esc(string $str) : string; + protected abstract function _close() : void; + protected abstract function _query(string $query) : array; + protected abstract function _esc(string $str) : string; + + /* + * Perform a database query and return the results as an array + * of arrays. + */ + public static function query(string $query) : array + { + return self::getInstance()->_query($query); + } + + /* + * Escape a given string for use in a database query + */ + public static function esc(string $str) : string + { + return self::getInstance()->_esc($str); + } } ?> -- cgit v1.2.3