diff options
| author | Yuchen Pei <hi@ypei.me> | 2021-10-15 09:52:00 +1100 | 
|---|---|---|
| committer | Yuchen Pei <hi@ypei.me> | 2021-10-15 09:52:00 +1100 | 
| commit | 71b0e901f5fb1cfcd162d8acc23120d3f77a3152 (patch) | |
| tree | 323c00faef1edc7dea2e88ff581cc2258b2b6432 /admin/Library/Factory | |
| parent | 72cce24864b064b5762f4fe97fdf40d8d2ad4b51 (diff) | |
| parent | 07f5140771388c9e0c8a99b0dd2e5d950bdb173b (diff) | |
Merge branch 'development' into h-node
Diffstat (limited to 'admin/Library/Factory')
| -rwxr-xr-x | admin/Library/Factory/Db.php | 52 | ||||
| -rw-r--r-- | admin/Library/Factory/index.html | 1 | 
2 files changed, 53 insertions, 0 deletions
diff --git a/admin/Library/Factory/Db.php b/admin/Library/Factory/Db.php new file mode 100755 index 0000000..3a988dd --- /dev/null +++ b/admin/Library/Factory/Db.php @@ -0,0 +1,52 @@ +<?php + +// All EasyGiant code is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. +// See COPYRIGHT.txt and LICENSE.txt. + +if (!defined('EG')) die('Direct access not allowed!'); + +//class to create the database layer class +class Factory_Db { + +	//start the database connection +	//$dbType: mysql,mysqli,pg +	//$dbArrayParams: array containing the HOST, the USER, the PWD, and the DB of the database (see config.php) +	public static function getInstance($dbType,$dbArrayParams = array()) { +		if (!in_array($dbType,Params::$allowedDb)) { +			throw new Exception('error in ' . __METHOD__ . ' : the database type has to be '.implode(' or ',Params::$allowedDb)); +		} +		switch ($dbType) { +			case 'Mysql': +				return call_user_func_array(array('Db_'.$dbType,'getInstance'),$dbArrayParams); +				break; +			case 'Mysqli': +				return call_user_func_array(array('Db_'.$dbType,'getInstance'),$dbArrayParams); +				break; +			case 'None': +				return null; +				break; +		} +	} + +	//close the database connection +	public static function disconnect($dbType) +	{ +		if (!in_array($dbType,Params::$allowedDb)) { +			throw new Exception('error in ' . __METHOD__ . ' : the database type has to be '.implode(' or ',Params::$allowedDb)); +		} +		switch ($dbType) { +			case 'Mysql': +				$mysql = Db_Mysql::getInstance(); +				$mysql->disconnect(); +				break; +			case 'Mysqli': +				$mysqli = Db_Mysqli::getInstance(); +				$mysqli->disconnect(); +				break; +			case 'None': +				return null; +				break; +		} +	} + +} diff --git a/admin/Library/Factory/index.html b/admin/Library/Factory/index.html new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/admin/Library/Factory/index.html @@ -0,0 +1 @@ +   | 
