remove global db variable
This commit is contained in:
		| @@ -57,7 +57,7 @@ class Setup extends \Zotlabs\Web\Controller { | ||||
| 	 * @param[in,out] App &$a | ||||
| 	 */ | ||||
| 		function post() { | ||||
| 		global $db; | ||||
|  | ||||
| 	 | ||||
| 		switch($this->install_wizard_pass) { | ||||
| 			case 1: | ||||
| @@ -82,37 +82,14 @@ class Setup extends \Zotlabs\Web\Controller { | ||||
| 				$siteurl = rtrim($siteurl,'/'); | ||||
| 	 | ||||
| 				require_once('include/dba/dba_driver.php'); | ||||
| 				unset($db); | ||||
| 				$db = dba_factory($dbhost, $dbport, $dbuser, $dbpass, $dbdata, $dbtype, true); | ||||
| 				$db = null; | ||||
| 				$db = \DBA::dba_factory($dbhost, $dbport, $dbuser, $dbpass, $dbdata, $dbtype, true); | ||||
| 	 | ||||
| 				if(! $db->connected) { | ||||
| 					echo 'Database Connect failed: ' . $db->error; | ||||
| 					killme(); | ||||
| 					\App::$data['db_conn_failed']=true; | ||||
| 				} | ||||
| 				/*if(get_db_errno()) { | ||||
| 					unset($db); | ||||
| 					$db = dba_factory($dbhost, $dbport, $dbuser, $dbpass, '', true); | ||||
| 	 | ||||
| 					if(! get_db_errno()) { | ||||
| 						$r = q("CREATE DATABASE '%s'", | ||||
| 								dbesc($dbdata) | ||||
| 						); | ||||
| 						if($r) { | ||||
| 							unset($db); | ||||
| 							$db = new dba($dbhost, $dbport, $dbuser, $dbpass, $dbdata, true); | ||||
| 						} else { | ||||
| 							\App::$data['db_create_failed']=true; | ||||
| 						} | ||||
| 					} else { | ||||
| 						\App::$data['db_conn_failed']=true; | ||||
| 						return; | ||||
| 					} | ||||
| 				}*/ | ||||
| 				//if(get_db_errno()) { | ||||
| 	 | ||||
| 				//} | ||||
| 	 | ||||
| 				return; | ||||
| 				break; | ||||
| 			case 4: | ||||
| @@ -139,7 +116,7 @@ class Setup extends \Zotlabs\Web\Controller { | ||||
| 				} | ||||
| 	 | ||||
| 				// connect to db | ||||
| 				$db = dba_factory($dbhost, $dbport, $dbuser, $dbpass, $dbdata, $dbtype, true); | ||||
| 				$db = \DBA::dba_factory($dbhost, $dbport, $dbuser, $dbpass, $dbdata, $dbtype, true); | ||||
| 	 | ||||
| 				if(! $db->connected) { | ||||
| 					echo 'CRITICAL: DB not connected.'; | ||||
| @@ -195,7 +172,6 @@ class Setup extends \Zotlabs\Web\Controller { | ||||
| 	 * @return string parsed HTML output | ||||
| 	 */ | ||||
| 		function get() { | ||||
| 		global $db; | ||||
| 	 | ||||
| 		$o = ''; | ||||
| 		$wizard_status = ''; | ||||
| @@ -228,7 +204,7 @@ class Setup extends \Zotlabs\Web\Controller { | ||||
| 			$txt .= "<pre>".\App::$data['db_failed'] . "</pre>". EOL ; | ||||
| 			$db_return_text .= $txt; | ||||
| 		} | ||||
| 		if($db && $db->connected) { | ||||
| 		if(\DBA::$dba && \DBA::$dba->connected) { | ||||
| 			$r = q("SELECT COUNT(*) as `total` FROM `account`"); | ||||
| 			if($r && count($r) && $r[0]['total']) { | ||||
| 				$tpl = get_markup_template('install.tpl'); | ||||
| @@ -693,12 +669,12 @@ class Setup extends \Zotlabs\Web\Controller { | ||||
| 	 | ||||
| 	 | ||||
| 	function load_database($db) { | ||||
| 		$str = file_get_contents($db->get_install_script()); | ||||
| 		$str = file_get_contents(\DBA::$dba->get_install_script()); | ||||
| 		$arr = explode(';',$str); | ||||
| 		$errors = false; | ||||
| 		foreach($arr as $a) { | ||||
| 			if(strlen(trim($a))) { | ||||
| 				$r = @$db->q(trim($a)); | ||||
| 				$r = @\DBA::$dba->q(trim($a)); | ||||
| 				if(! $r) { | ||||
| 					$errors .=  t('Errors encountered creating database tables.') . $a . EOL; | ||||
| 				} | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| <?php /** @file */ | ||||
|  | ||||
| require_once('boot.php'); | ||||
| require_once('include/dba/dba_driver.php'); | ||||
|  | ||||
| // Everything we need to boot standalone 'background' processes | ||||
|  | ||||
| @@ -14,7 +15,7 @@ function cli_startup() { | ||||
|  | ||||
| 	App::init(); | ||||
|    | ||||
| 	if(is_null($db)) { | ||||
| 	if(! DBA::$dba) { | ||||
| 	    @include(".htconfig.php"); | ||||
|  | ||||
| 		$a->convert(); | ||||
| @@ -25,8 +26,7 @@ function cli_startup() { | ||||
| 		App::$timezone = ((x($default_timezone)) ? $default_timezone : 'UTC'); | ||||
| 		date_default_timezone_set(App::$timezone); | ||||
|  | ||||
|     	require_once('include/dba/dba_driver.php'); | ||||
| 	    $db = dba_factory($db_host, $db_port, $db_user, $db_pass, $db_data, $db_type); | ||||
| 	    $db = DBA::dba_factory($db_host, $db_port, $db_user, $db_pass, $db_data, $db_type); | ||||
|     	unset($db_host, $db_port, $db_user, $db_pass, $db_data, $db_type); | ||||
|   	}; | ||||
|  | ||||
|   | ||||
| @@ -7,7 +7,14 @@ | ||||
|  * functions for working with databases. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  | ||||
| class DBA { | ||||
|  | ||||
| 	static public $dba = null; | ||||
| 	static public $dbtype = null; | ||||
|  | ||||
|  | ||||
| 	/** | ||||
| 	 * @brief Returns the database driver object. | ||||
| 	 * | ||||
| 	 * If available it will use PHP's mysqli otherwise mysql driver. | ||||
| @@ -21,30 +28,36 @@ | ||||
| 	 * @param bool $install Defaults to false | ||||
| 	 * @return null|dba_driver A database driver object (dba_mysql|dba_mysqli) or null if no driver found. | ||||
| 	 */ | ||||
| function dba_factory($server, $port,$user,$pass,$db,$dbtype,$install = false) { | ||||
| 	$dba = null; | ||||
| 	 | ||||
| 	$dbtype = intval($dbtype); | ||||
| 	function dba_factory($server, $port,$user,$pass,$db,$dbtype,$install = false) { | ||||
| 	 | ||||
| 	if($dbtype == DBTYPE_POSTGRES) { | ||||
| 		self::$dba = null; | ||||
|  | ||||
| 		self::$dbtype = intval($dbtype); | ||||
|  | ||||
| 		if(self::$dbtype == DBTYPE_POSTGRES) { | ||||
| 			require_once('include/dba/dba_postgres.php'); | ||||
| 			if(is_null($port)) $port = 5432; | ||||
| 		$dba = new dba_postgres($server, $port, $user, $pass, $db, $install); | ||||
| 	} else { | ||||
| 			self::$dba = new dba_postgres($server, $port, $user, $pass, $db, $install); | ||||
| 		}  | ||||
| 		else { | ||||
| 			if(class_exists('mysqli')) { | ||||
| 				if (is_null($port)) $port = ini_get("mysqli.default_port"); | ||||
| 				require_once('include/dba/dba_mysqli.php'); | ||||
| 			$dba = new dba_mysqli($server, $port,$user,$pass,$db,$install); | ||||
| 		} else { | ||||
| 				self::$dba = new dba_mysqli($server, $port,$user,$pass,$db,$install); | ||||
| 			}  | ||||
| 			else { | ||||
| 				// UNSUPPORTED, OBSOLETE | ||||
| 				if (is_null($port)) $port = "3306"; | ||||
| 				require_once('include/dba/dba_mysql.php'); | ||||
| 			$dba = new dba_mysql($server, $port,$user,$pass,$db,$install); | ||||
| 				self::$dba = new dba_mysql($server, $port,$user,$pass,$db,$install); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 	define('NULL_DATE', $dba->get_null_date()); | ||||
| 	define('ACTIVE_DBTYPE', $dbtype); | ||||
| 	return $dba; | ||||
| 		define('NULL_DATE', self::$dba->get_null_date()); | ||||
| 		define('ACTIVE_DBTYPE', self::$dbtype); | ||||
| 		return self::$dba; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| /** | ||||
| @@ -53,6 +66,7 @@ function dba_factory($server, $port,$user,$pass,$db,$dbtype,$install = false) { | ||||
|  * This class gets extended by the real database driver classes, e.g. dba_mysql, | ||||
|  * dba_mysqli. | ||||
|  */ | ||||
|  | ||||
| abstract class dba_driver { | ||||
| 	// legacy behavior | ||||
| 	const INSTALL_SCRIPT='install/schema_mysql.sql'; | ||||
| @@ -203,10 +217,10 @@ function printable($s) { | ||||
|  * @param int $state 0 to disable debugging | ||||
|  */ | ||||
| function dbg($state) { | ||||
| 	global $db; | ||||
| //	global $db; | ||||
|  | ||||
| 	if($db) | ||||
| 		$db->dbg($state); | ||||
| 	if(DBA::$dba) | ||||
| 		DBA::$dba->dbg($state); | ||||
| } | ||||
|  | ||||
| /** | ||||
| @@ -220,21 +234,20 @@ function dbg($state) { | ||||
|  * @return Return an escaped string of the value to pass to a DB query. | ||||
|  */ | ||||
| function dbesc($str) { | ||||
| 	global $db; | ||||
|  | ||||
| 	if($db && $db->connected) | ||||
| 		return($db->escape($str)); | ||||
| 	if(DBA::$dba && DBA::$dba->connected) | ||||
| 		return(DBA::$dba->escape($str)); | ||||
| 	else | ||||
| 		return(str_replace("'", "\\'", $str)); | ||||
| } | ||||
|  | ||||
| function dbescbin($str) { | ||||
| 	global $db; | ||||
| 	return $db->escapebin($str); | ||||
| 	return DBA::$dba->escapebin($str); | ||||
| } | ||||
|  | ||||
| function dbunescbin($str) { | ||||
| 	global $db; | ||||
| 	return $db->unescapebin($str); | ||||
| 	return DBA::$dba->unescapebin($str); | ||||
| } | ||||
|  | ||||
| function dbescdate($date) { | ||||
| @@ -248,27 +261,27 @@ function dbescdate($date) { | ||||
|  | ||||
| function db_quoteinterval($txt) { | ||||
| 	global $db; | ||||
| 	return $db->quote_interval($txt); | ||||
| 	return DBA::$dba->quote_interval($txt); | ||||
| } | ||||
|  | ||||
| function dbesc_identifier($str) { | ||||
| 	global $db; | ||||
| 	return $db->escape_identifier($str); | ||||
| 	return DBA::$dba->escape_identifier($str); | ||||
| } | ||||
|  | ||||
| function db_utcnow() { | ||||
| 	global $db; | ||||
| 	return $db->utcnow(); | ||||
| 	return DBA::$dba->utcnow(); | ||||
| } | ||||
|  | ||||
| function db_optimizetable($table) { | ||||
| 	global $db; | ||||
| 	$db->optimize_table($table); | ||||
| 	DBA::$dba->optimize_table($table); | ||||
| } | ||||
|  | ||||
| function db_concat($fld, $sep) { | ||||
| 	global $db; | ||||
| 	return $db->concat($fld, $sep); | ||||
| 	return DBA::$dba->concat($fld, $sep); | ||||
| } | ||||
|  | ||||
| // Function: q($sql,$args); | ||||
| @@ -298,7 +311,7 @@ function q($sql) { | ||||
| 	$args = func_get_args(); | ||||
| 	unset($args[0]); | ||||
|  | ||||
| 	if($db && $db->connected) { | ||||
| 	if(DBA::$dba && DBA::$dba->connected) { | ||||
| 		$stmt = vsprintf($sql, $args); | ||||
| 		if($stmt === false) { | ||||
| 			if(version_compare(PHP_VERSION, '5.4.0') >= 0) | ||||
| @@ -307,7 +320,7 @@ function q($sql) { | ||||
| 			else | ||||
| 				logger('dba: vsprintf error: ' . print_r(debug_backtrace(), true),LOGGER_NORMAL,LOG_CRIT); | ||||
| 		} | ||||
| 		return $db->q($stmt); | ||||
| 		return DBA::$dba->q($stmt); | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
| @@ -329,8 +342,8 @@ function q($sql) { | ||||
| function dbq($sql) { | ||||
| 	global $db; | ||||
|  | ||||
| 	if($db && $db->connected) | ||||
| 		$ret = $db->q($sql); | ||||
| 	if(DBA::$dba && DBA::$dba->connected) | ||||
| 		$ret = DBA::$dba->q($sql); | ||||
| 	else | ||||
| 		$ret = false; | ||||
|  | ||||
|   | ||||
| @@ -2035,7 +2035,7 @@ function get_site_info() { | ||||
| 		'admin' => $admin, | ||||
| 		'site_name' => (($site_name) ? $site_name : ''), | ||||
| 		'platform' => Zotlabs\Project\System::get_platform_name(), | ||||
| 		'dbdriver' => $db->getdriver(), | ||||
| 		'dbdriver' => \DBA::$dba->getdriver(), | ||||
| 		'lastpoll' => get_config('system','lastpoll'), | ||||
| 		'info' => (($site_info) ? $site_info : ''), | ||||
| 		'channels_total' => $channels_total_stat, | ||||
|   | ||||
| @@ -540,11 +540,11 @@ function attribute_contains($attr, $s) { | ||||
|  */ | ||||
|  | ||||
| function logger($msg, $level = LOGGER_NORMAL, $priority = LOG_INFO) { | ||||
| 	// turn off logger in install mode | ||||
| 	global $a; | ||||
| 	global $db; | ||||
|  | ||||
| 	if((App::$module == 'install') || (! ($db && $db->connected))) | ||||
| 	require_once('include/dba/dba_driver.php'); | ||||
|  | ||||
| 	// turn off logger in install mode | ||||
| 	if((App::$module == 'install') || (! (DBA::$dba && DBA::$dba->connected))) | ||||
| 		return; | ||||
|  | ||||
| 	$debugging = get_config('system', 'debugging'); | ||||
| @@ -621,11 +621,11 @@ function log_priority_str($priority) { | ||||
|  * @param int $level A log level. | ||||
|  */ | ||||
| function dlogger($msg, $level = 0) { | ||||
| 	// turn off logger in install mode | ||||
| 	global $a; | ||||
| 	global $db; | ||||
|  | ||||
| 	if((App::$module == 'install') || (! ($db && $db->connected))) | ||||
| 	require_once('include/dba/dba_driver.php'); | ||||
|  | ||||
| 	// turn off logger in install mode | ||||
| 	if((App::$module == 'install') || (! (DBA::$dba && DBA::$dba->connected))) | ||||
| 		return; | ||||
|  | ||||
| 	$debugging = get_config('system','debugging'); | ||||
|   | ||||
| @@ -47,7 +47,7 @@ date_default_timezone_set(App::$timezone); | ||||
| require_once('include/dba/dba_driver.php'); | ||||
|  | ||||
| if(! App::$install) { | ||||
| 	$db = dba_factory($db_host, $db_port, $db_user, $db_pass, $db_data, $db_type, App::$install); | ||||
| 	$db = DBA::dba_factory($db_host, $db_port, $db_user, $db_pass, $db_data, $db_type, App::$install); | ||||
| 	if(! $db->connected) { | ||||
| 		system_unavailable(); | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user