mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-06 16:56:44 +02:00
[ticket/12446] Unnecessary db connect inphpbb_bootstrap_enabled_exts
PHPBB3-12446
This commit is contained in:
@@ -90,7 +90,7 @@ class acp_database
|
||||
$time = time();
|
||||
|
||||
$filename = 'backup_' . $time . '_' . unique_id();
|
||||
switch ($db->sql_layer)
|
||||
switch ($db->get_sql_layer())
|
||||
{
|
||||
case 'mysqli':
|
||||
case 'mysql4':
|
||||
@@ -133,7 +133,7 @@ class acp_database
|
||||
else
|
||||
{
|
||||
// We might wanna empty out all that junk :D
|
||||
switch ($db->sql_layer)
|
||||
switch ($db->get_sql_layer())
|
||||
{
|
||||
case 'sqlite':
|
||||
case 'sqlite3':
|
||||
@@ -320,7 +320,7 @@ class acp_database
|
||||
break;
|
||||
}
|
||||
|
||||
switch ($db->sql_layer)
|
||||
switch ($db->get_sql_layer())
|
||||
{
|
||||
case 'mysql':
|
||||
case 'mysql4':
|
||||
@@ -365,10 +365,10 @@ class acp_database
|
||||
{
|
||||
trigger_error($user->lang['RESTORE_FAILURE'] . adm_back_link($this->u_action), E_USER_WARNING);
|
||||
}
|
||||
pg_put_line($db->db_connect_id, $sub . "\n");
|
||||
pg_put_line($db->get_db_connect_id(), $sub . "\n");
|
||||
}
|
||||
pg_put_line($db->db_connect_id, "\\.\n");
|
||||
pg_end_copy($db->db_connect_id);
|
||||
pg_put_line($db->get_db_connect_id(), "\\.\n");
|
||||
pg_end_copy($db->get_db_connect_id());
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -623,7 +623,7 @@ class mysql_extractor extends base_extractor
|
||||
|
||||
if ($new_extract === null)
|
||||
{
|
||||
if ($db->sql_layer === 'mysqli' || version_compare($db->sql_server_info(true), '3.23.20', '>='))
|
||||
if ($db->get_sql_layer() === 'mysqli' || version_compare($db->sql_server_info(true), '3.23.20', '>='))
|
||||
{
|
||||
$new_extract = true;
|
||||
}
|
||||
@@ -646,7 +646,7 @@ class mysql_extractor extends base_extractor
|
||||
function write_data($table_name)
|
||||
{
|
||||
global $db;
|
||||
if ($db->sql_layer === 'mysqli')
|
||||
if ($db->get_sql_layer() === 'mysqli')
|
||||
{
|
||||
$this->write_data_mysqli($table_name);
|
||||
}
|
||||
@@ -661,7 +661,7 @@ class mysql_extractor extends base_extractor
|
||||
global $db;
|
||||
$sql = "SELECT *
|
||||
FROM $table_name";
|
||||
$result = mysqli_query($db->db_connect_id, $sql, MYSQLI_USE_RESULT);
|
||||
$result = mysqli_query($db->get_db_connect_id(), $sql, MYSQLI_USE_RESULT);
|
||||
if ($result != false)
|
||||
{
|
||||
$fields_cnt = mysqli_num_fields($result);
|
||||
@@ -740,7 +740,7 @@ class mysql_extractor extends base_extractor
|
||||
global $db;
|
||||
$sql = "SELECT *
|
||||
FROM $table_name";
|
||||
$result = mysql_unbuffered_query($sql, $db->db_connect_id);
|
||||
$result = mysql_unbuffered_query($sql, $db->get_db_connect_id());
|
||||
|
||||
if ($result != false)
|
||||
{
|
||||
@@ -993,11 +993,11 @@ class sqlite_extractor extends base_extractor
|
||||
{
|
||||
global $db;
|
||||
|
||||
$col_types = sqlite_fetch_column_types($db->db_connect_id, $table_name);
|
||||
$col_types = sqlite_fetch_column_types($db->get_db_connect_id(), $table_name);
|
||||
|
||||
$sql = "SELECT *
|
||||
FROM $table_name";
|
||||
$result = sqlite_unbuffered_query($db->db_connect_id, $sql);
|
||||
$result = sqlite_unbuffered_query($db->get_db_connect_id(), $sql);
|
||||
$rows = sqlite_fetch_all($result, SQLITE_ASSOC);
|
||||
$sql_insert = 'INSERT INTO ' . $table_name . ' (' . implode(', ', array_keys($col_types)) . ') VALUES (';
|
||||
foreach ($rows as $row)
|
||||
@@ -1553,11 +1553,11 @@ class mssql_extractor extends base_extractor
|
||||
{
|
||||
global $db;
|
||||
|
||||
if ($db->sql_layer === 'mssql')
|
||||
if ($db->get_sql_layer() === 'mssql')
|
||||
{
|
||||
$this->write_data_mssql($table_name);
|
||||
}
|
||||
else if($db->sql_layer === 'mssqlnative')
|
||||
else if($db->get_sql_layer() === 'mssqlnative')
|
||||
{
|
||||
$this->write_data_mssqlnative($table_name);
|
||||
}
|
||||
|
@@ -1827,7 +1827,7 @@ class acp_forums
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
switch ($db->sql_layer)
|
||||
switch ($db->get_sql_layer())
|
||||
{
|
||||
case 'mysql4':
|
||||
case 'mysqli':
|
||||
|
@@ -538,7 +538,7 @@ class acp_icons
|
||||
// The user has already selected a smilies_pak file
|
||||
if ($current == 'delete')
|
||||
{
|
||||
switch ($db->sql_layer)
|
||||
switch ($db->get_sql_layer())
|
||||
{
|
||||
case 'sqlite':
|
||||
case 'sqlite3':
|
||||
|
@@ -269,7 +269,7 @@ class acp_main
|
||||
break;
|
||||
|
||||
case 'db_track':
|
||||
switch ($db->sql_layer)
|
||||
switch ($db->get_sql_layer())
|
||||
{
|
||||
case 'sqlite':
|
||||
case 'sqlite3':
|
||||
@@ -374,7 +374,7 @@ class acp_main
|
||||
|
||||
foreach ($tables as $table)
|
||||
{
|
||||
switch ($db->sql_layer)
|
||||
switch ($db->get_sql_layer())
|
||||
{
|
||||
case 'sqlite':
|
||||
case 'sqlite3':
|
||||
|
@@ -253,7 +253,7 @@ class acp_permission_roles
|
||||
{
|
||||
$sql = 'SELECT auth_option_id, auth_option
|
||||
FROM ' . ACL_OPTIONS_TABLE . "
|
||||
WHERE auth_option " . $db->sql_like_expression($permission_type . $db->any_char) . "
|
||||
WHERE auth_option " . $db->sql_like_expression($permission_type . $db->get_any_char()) . "
|
||||
AND auth_option <> '{$permission_type}'
|
||||
ORDER BY auth_option_id";
|
||||
$result = $db->sql_query($sql);
|
||||
@@ -315,7 +315,7 @@ class acp_permission_roles
|
||||
// We need to fill the auth options array with ACL_NO options ;)
|
||||
$sql = 'SELECT auth_option_id, auth_option
|
||||
FROM ' . ACL_OPTIONS_TABLE . "
|
||||
WHERE auth_option " . $db->sql_like_expression($permission_type . $db->any_char) . "
|
||||
WHERE auth_option " . $db->sql_like_expression($permission_type . $db->get_any_char()) . "
|
||||
AND auth_option <> '{$permission_type}'
|
||||
ORDER BY auth_option_id";
|
||||
$result = $db->sql_query($sql);
|
||||
@@ -519,7 +519,7 @@ class acp_permission_roles
|
||||
// Get complete auth array
|
||||
$sql = 'SELECT auth_option, auth_option_id
|
||||
FROM ' . ACL_OPTIONS_TABLE . "
|
||||
WHERE auth_option " . $db->sql_like_expression($permission_type . $db->any_char);
|
||||
WHERE auth_option " . $db->sql_like_expression($permission_type . $db->get_any_char());
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
$auth_settings = array();
|
||||
|
@@ -1238,7 +1238,7 @@ class acp_permissions
|
||||
|
||||
$sql = 'SELECT auth_option_id
|
||||
FROM ' . ACL_OPTIONS_TABLE . '
|
||||
WHERE auth_option ' . $db->sql_like_expression($permission_type . $db->any_char);
|
||||
WHERE auth_option ' . $db->sql_like_expression($permission_type . $db->get_any_char());
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
|
@@ -112,7 +112,7 @@ class acp_profile
|
||||
$db->sql_query('DELETE FROM ' . PROFILE_FIELDS_LANG_TABLE . " WHERE field_id = $field_id");
|
||||
$db->sql_query('DELETE FROM ' . PROFILE_LANG_TABLE . " WHERE field_id = $field_id");
|
||||
|
||||
switch ($db->sql_layer)
|
||||
switch ($db->get_sql_layer())
|
||||
{
|
||||
case 'sqlite':
|
||||
case 'sqlite3':
|
||||
@@ -1196,7 +1196,7 @@ class acp_profile
|
||||
{
|
||||
global $db;
|
||||
|
||||
switch ($db->sql_layer)
|
||||
switch ($db->get_sql_layer())
|
||||
{
|
||||
case 'mysql':
|
||||
case 'mysql4':
|
||||
|
@@ -436,8 +436,8 @@ class acp_prune
|
||||
$sort_by_types = array('username', 'user_email', 'user_posts', 'user_regdate', 'user_lastvisit');
|
||||
|
||||
$where_sql = '';
|
||||
$where_sql .= ($username) ? ' AND username_clean ' . $db->sql_like_expression(str_replace('*', $db->any_char, utf8_clean_string($username))) : '';
|
||||
$where_sql .= ($email) ? ' AND user_email ' . $db->sql_like_expression(str_replace('*', $db->any_char, $email)) . ' ' : '';
|
||||
$where_sql .= ($username) ? ' AND username_clean ' . $db->sql_like_expression(str_replace('*', $db->get_any_char(), utf8_clean_string($username))) : '';
|
||||
$where_sql .= ($email) ? ' AND user_email ' . $db->sql_like_expression(str_replace('*', $db->get_any_char(), $email)) . ' ' : '';
|
||||
$where_sql .= $joined_sql;
|
||||
$where_sql .= ($count) ? " AND user_posts " . $key_match[$count_select] . ' ' . (int) $count . ' ' : '';
|
||||
|
||||
|
@@ -219,7 +219,7 @@ class acp_reasons
|
||||
$other_reason_id = (int) $db->sql_fetchfield('reason_id');
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
switch ($db->sql_layer)
|
||||
switch ($db->get_sql_layer())
|
||||
{
|
||||
// The ugly one!
|
||||
case 'mysqli':
|
||||
|
@@ -2384,7 +2384,7 @@ class acp_users
|
||||
// Select auth options
|
||||
$sql = 'SELECT auth_option, is_local, is_global
|
||||
FROM ' . ACL_OPTIONS_TABLE . '
|
||||
WHERE auth_option ' . $db->sql_like_expression($db->any_char . '_') . '
|
||||
WHERE auth_option ' . $db->sql_like_expression($db->get_any_char() . '_') . '
|
||||
AND is_global = 1
|
||||
ORDER BY auth_option';
|
||||
$result = $db->sql_query($sql);
|
||||
@@ -2404,7 +2404,7 @@ class acp_users
|
||||
{
|
||||
$sql = 'SELECT auth_option, is_local, is_global
|
||||
FROM ' . ACL_OPTIONS_TABLE . "
|
||||
WHERE auth_option " . $db->sql_like_expression($db->any_char . '_') . "
|
||||
WHERE auth_option " . $db->sql_like_expression($db->get_any_char() . '_') . "
|
||||
AND is_local = 1
|
||||
ORDER BY is_global DESC, auth_option";
|
||||
$result = $db->sql_query($sql);
|
||||
|
@@ -1024,7 +1024,7 @@ class auth_admin extends \phpbb\auth\auth
|
||||
// Get permission type
|
||||
$sql = 'SELECT auth_option, auth_option_id
|
||||
FROM ' . ACL_OPTIONS_TABLE . "
|
||||
WHERE auth_option " . $db->sql_like_expression($permission_type . $db->any_char);
|
||||
WHERE auth_option " . $db->sql_like_expression($permission_type . $db->get_any_char());
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
$auth_id_ary = array();
|
||||
|
@@ -3998,7 +3998,7 @@ function obtain_guest_count($item_id = 0, $item = 'forum')
|
||||
|
||||
// Get number of online guests
|
||||
|
||||
if ($db->sql_layer === 'sqlite' || $db->sql_layer === 'sqlite3')
|
||||
if ($db->get_sql_layer() === 'sqlite' || $db->get_sql_layer() === 'sqlite3')
|
||||
{
|
||||
$sql = 'SELECT COUNT(session_ip) as num_guests
|
||||
FROM (
|
||||
@@ -5064,7 +5064,7 @@ function phpbb_generate_debug_output(phpbb\db\driver\driver_interface $db, \phpb
|
||||
if (isset($GLOBALS['starttime']))
|
||||
{
|
||||
$totaltime = microtime(true) - $GLOBALS['starttime'];
|
||||
$debug_info[] = sprintf('<abbr title="SQL time: %.3fs / PHP time: %.3fs">Time: %.3fs</abbr>', $db->sql_time, ($totaltime - $db->sql_time), $totaltime);
|
||||
$debug_info[] = sprintf('<abbr title="SQL time: %.3fs / PHP time: %.3fs">Time: %.3fs</abbr>', $db->get_sql_time(), ($totaltime - $db->get_sql_time()), $totaltime);
|
||||
}
|
||||
|
||||
$debug_info[] = sprintf('<abbr title="Cached: %d">Queries: %d</abbr>', $db->sql_num_queries(true), $db->sql_num_queries());
|
||||
|
@@ -1435,7 +1435,7 @@ function sync($mode, $where_type = '', $where_ids = '', $resync_parents = false,
|
||||
{
|
||||
case 'topic_moved':
|
||||
$db->sql_transaction('begin');
|
||||
switch ($db->sql_layer)
|
||||
switch ($db->get_sql_layer())
|
||||
{
|
||||
case 'mysql4':
|
||||
case 'mysqli':
|
||||
@@ -2441,7 +2441,7 @@ function phpbb_cache_moderators($db, $cache, $auth)
|
||||
$cache->destroy('sql', MODERATOR_CACHE_TABLE);
|
||||
|
||||
// Clear table
|
||||
switch ($db->sql_layer)
|
||||
switch ($db->get_sql_layer())
|
||||
{
|
||||
case 'sqlite':
|
||||
case 'sqlite3':
|
||||
@@ -2491,7 +2491,7 @@ function phpbb_cache_moderators($db, $cache, $auth)
|
||||
AND NOT (ug.group_leader = 1 AND g.group_skip_auth = 1)
|
||||
AND ' . $db->sql_in_set('ug.user_id', $ug_id_ary) . "
|
||||
AND ug.user_pending = 0
|
||||
AND o.auth_option " . $db->sql_like_expression('m_' . $db->any_char),
|
||||
AND o.auth_option " . $db->sql_like_expression('m_' . $db->get_any_char()),
|
||||
);
|
||||
$sql = $db->sql_build_query('SELECT', $sql_ary_deny);
|
||||
$result = $db->sql_query($sql);
|
||||
@@ -2697,11 +2697,11 @@ function phpbb_update_foes($db, $auth, $group_id = false, $user_id = false)
|
||||
return;
|
||||
}
|
||||
|
||||
switch ($db->sql_layer)
|
||||
switch ($db->get_sql_layer())
|
||||
{
|
||||
case 'mysqli':
|
||||
case 'mysql4':
|
||||
$sql = 'DELETE ' . (($db->sql_layer === 'mysqli' || version_compare($db->sql_server_info(true), '4.1', '>=')) ? 'z.*' : ZEBRA_TABLE) . '
|
||||
$sql = 'DELETE ' . (($db->get_sql_layer() === 'mysqli' || version_compare($db->sql_server_info(true), '4.1', '>=')) ? 'z.*' : ZEBRA_TABLE) . '
|
||||
FROM ' . ZEBRA_TABLE . ' z, ' . USER_GROUP_TABLE . ' ug
|
||||
WHERE z.zebra_id = ug.user_id
|
||||
AND z.foe = 1
|
||||
@@ -2854,7 +2854,7 @@ function get_database_size()
|
||||
$database_size = false;
|
||||
|
||||
// This code is heavily influenced by a similar routine in phpMyAdmin 2.2.0
|
||||
switch ($db->sql_layer)
|
||||
switch ($db->get_sql_layer())
|
||||
{
|
||||
case 'mysql':
|
||||
case 'mysql4':
|
||||
@@ -2870,7 +2870,7 @@ function get_database_size()
|
||||
|
||||
if (preg_match('#(3\.23|[45]\.)#', $version))
|
||||
{
|
||||
$db_name = (preg_match('#^(?:3\.23\.(?:[6-9]|[1-9]{2}))|[45]\.#', $version)) ? "`{$db->dbname}`" : $db->dbname;
|
||||
$db_name = (preg_match('#^(?:3\.23\.(?:[6-9]|[1-9]{2}))|[45]\.#', $version)) ? "`{$db->get_db_name()}`" : $db->get_db_name();
|
||||
|
||||
$sql = 'SHOW TABLE STATUS
|
||||
FROM ' . $db_name;
|
||||
@@ -2946,7 +2946,7 @@ function get_database_size()
|
||||
|
||||
if ($row['proname'] == 'pg_database_size')
|
||||
{
|
||||
$database = $db->dbname;
|
||||
$database = $db->get_db_name();
|
||||
if (strpos($database, '.') !== false)
|
||||
{
|
||||
list($database, ) = explode('.', $database);
|
||||
|
@@ -64,9 +64,10 @@ function phpbb_bootstrap_table_prefix($config_file)
|
||||
*
|
||||
* @param string $config_file
|
||||
* @param string $phpbb_root_path
|
||||
* @param \phpbb\db\driver\driver_interface $db The generated connection
|
||||
* @return array enabled extensions
|
||||
*/
|
||||
function phpbb_bootstrap_enabled_exts($config_file, $phpbb_root_path)
|
||||
function phpbb_bootstrap_enabled_exts($config_file, $phpbb_root_path, &$db)
|
||||
{
|
||||
$db = phpbb_bootstrap_db_connection($config_file);
|
||||
$table_prefix = phpbb_bootstrap_table_prefix($config_file);
|
||||
@@ -133,7 +134,7 @@ function phpbb_create_install_container($phpbb_root_path, $php_ext)
|
||||
$container->setParameter('core.php_ext', $php_ext);
|
||||
$container->setParameter('core.table_prefix', '');
|
||||
|
||||
$container->register('dbal.conn')->setSynthetic(true);
|
||||
$container->register('dbal.conn.driver')->setSynthetic(true);
|
||||
|
||||
$container->setAlias('cache.driver', 'cache.driver.install');
|
||||
|
||||
@@ -259,9 +260,10 @@ function phpbb_create_dumped_container_unless_debug($config_file, array $extensi
|
||||
function phpbb_create_default_container($phpbb_root_path, $php_ext)
|
||||
{
|
||||
$config_file = $phpbb_root_path . 'config.' . $php_ext;
|
||||
$installed_exts = phpbb_bootstrap_enabled_exts($config_file, $phpbb_root_path);
|
||||
$db = null;
|
||||
$installed_exts = phpbb_bootstrap_enabled_exts($config_file, $phpbb_root_path, $db);
|
||||
|
||||
return phpbb_create_dumped_container_unless_debug(
|
||||
$container = phpbb_create_dumped_container_unless_debug(
|
||||
$config_file,
|
||||
array(
|
||||
new \phpbb\di\extension\config($config_file),
|
||||
@@ -275,6 +277,10 @@ function phpbb_create_default_container($phpbb_root_path, $php_ext)
|
||||
$phpbb_root_path,
|
||||
$php_ext
|
||||
);
|
||||
|
||||
$container->get('dbal.conn')->set_driver($db);
|
||||
|
||||
return $container;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -1647,7 +1647,7 @@ function mass_auth($ug_type, $forum_id, $ug_id, $acl_list, $setting = ACL_NO)
|
||||
switch ($sql_type)
|
||||
{
|
||||
case 'insert':
|
||||
switch ($db->sql_layer)
|
||||
switch ($db->get_sql_layer())
|
||||
{
|
||||
case 'mysql':
|
||||
case 'mysql4':
|
||||
@@ -2041,7 +2041,7 @@ function update_topics_posted()
|
||||
{
|
||||
global $db, $config;
|
||||
|
||||
switch ($db->sql_layer)
|
||||
switch ($db->get_sql_layer())
|
||||
{
|
||||
case 'sqlite':
|
||||
case 'sqlite3':
|
||||
|
@@ -290,7 +290,7 @@ function connect_check_db($error_connect, &$error, $dbms_details, $table_prefix,
|
||||
switch ($dbms_details['DRIVER'])
|
||||
{
|
||||
case 'phpbb\db\driver\mysqli':
|
||||
if (version_compare(mysqli_get_server_info($db->db_connect_id), '4.1.3', '<'))
|
||||
if (version_compare(mysqli_get_server_info($db->get_db_connect_id()), '4.1.3', '<'))
|
||||
{
|
||||
$error[] = $lang['INST_ERR_DB_NO_MYSQLI'];
|
||||
}
|
||||
|
@@ -1350,7 +1350,7 @@ class parse_message extends bbcode_firstpass
|
||||
// NOTE: obtain_* function? chaching the table contents?
|
||||
|
||||
// For now setting the ttl to 10 minutes
|
||||
switch ($db->sql_layer)
|
||||
switch ($db->get_sql_layer())
|
||||
{
|
||||
case 'mssql':
|
||||
case 'mssql_odbc':
|
||||
|
Reference in New Issue
Block a user