mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
[task/config-class] Do not create multiple cache driver instances.
Retrieve the driver from the service instead of creating new ones over and over from the factory. PHPBB3-9988
This commit is contained in:
parent
8e26f14eb6
commit
f11579549d
6 changed files with 51 additions and 32 deletions
|
@ -207,8 +207,8 @@ $class_loader->register();
|
||||||
|
|
||||||
// set up caching
|
// set up caching
|
||||||
$cache_factory = new phpbb_cache_factory($acm_type);
|
$cache_factory = new phpbb_cache_factory($acm_type);
|
||||||
$class_loader->set_cache($cache_factory->get_driver());
|
|
||||||
$cache = $cache_factory->get_service();
|
$cache = $cache_factory->get_service();
|
||||||
|
$class_loader->set_cache($cache->get_driver());
|
||||||
|
|
||||||
// Instantiate some basic classes
|
// Instantiate some basic classes
|
||||||
$request = new phpbb_request();
|
$request = new phpbb_request();
|
||||||
|
@ -227,7 +227,7 @@ $db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, defined('
|
||||||
unset($dbpasswd);
|
unset($dbpasswd);
|
||||||
|
|
||||||
// Grab global variables, re-cache if necessary
|
// Grab global variables, re-cache if necessary
|
||||||
$config = new phpbb_config_db($db, $cache_factory->get_driver(), CONFIG_TABLE);
|
$config = new phpbb_config_db($db, $cache->get_driver(), CONFIG_TABLE);
|
||||||
set_config(null, null, null, $config);
|
set_config(null, null, null, $config);
|
||||||
set_config_count(null, null, null, $config);
|
set_config_count(null, null, null, $config);
|
||||||
|
|
||||||
|
|
|
@ -55,8 +55,8 @@ if (isset($_GET['avatar']))
|
||||||
|
|
||||||
// set up caching
|
// set up caching
|
||||||
$cache_factory = new phpbb_cache_factory($acm_type);
|
$cache_factory = new phpbb_cache_factory($acm_type);
|
||||||
$class_loader->set_cache($cache_factory->get_driver());
|
|
||||||
$cache = $cache_factory->get_service();
|
$cache = $cache_factory->get_service();
|
||||||
|
$class_loader->set_cache($cache->get_driver());
|
||||||
|
|
||||||
$db = new $sql_db();
|
$db = new $sql_db();
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ if (isset($_GET['avatar']))
|
||||||
// worst-case default
|
// worst-case default
|
||||||
$browser = (!empty($_SERVER['HTTP_USER_AGENT'])) ? htmlspecialchars((string) $_SERVER['HTTP_USER_AGENT']) : 'msie 6.0';
|
$browser = (!empty($_SERVER['HTTP_USER_AGENT'])) ? htmlspecialchars((string) $_SERVER['HTTP_USER_AGENT']) : 'msie 6.0';
|
||||||
|
|
||||||
$config = new phpbb_config_db($db, $cache_factory->get_driver(), CONFIG_TABLE);
|
$config = new phpbb_config_db($db, $cache->get_driver(), CONFIG_TABLE);
|
||||||
set_config(null, null, null, $config);
|
set_config(null, null, null, $config);
|
||||||
set_config_count(null, null, null, $config);
|
set_config_count(null, null, null, $config);
|
||||||
|
|
||||||
|
|
65
phpBB/includes/cache/service.php
vendored
65
phpBB/includes/cache/service.php
vendored
|
@ -2,7 +2,6 @@
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @package acm
|
* @package acm
|
||||||
* @version $Id$
|
|
||||||
* @copyright (c) 2005 phpBB Group
|
* @copyright (c) 2005 phpBB Group
|
||||||
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||||
*
|
*
|
||||||
|
@ -22,21 +21,41 @@ if (!defined('IN_PHPBB'))
|
||||||
*/
|
*/
|
||||||
class phpbb_cache_service
|
class phpbb_cache_service
|
||||||
{
|
{
|
||||||
private $acm;
|
private $driver;
|
||||||
|
|
||||||
public function __construct(phpbb_cache_driver_interface $acm = null)
|
/**
|
||||||
|
* Creates a cache service around a cache driver
|
||||||
|
*
|
||||||
|
* @param phpbb_cache_driver_interface $driver The cache driver
|
||||||
|
*/
|
||||||
|
public function __construct(phpbb_cache_driver_interface $driver = null)
|
||||||
{
|
{
|
||||||
$this->set_acm($acm);
|
$this->set_driver($driver);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function set_acm(phpbb_cache_driver_interface $acm)
|
/**
|
||||||
|
* Returns the cache driver used by this cache service.
|
||||||
|
*
|
||||||
|
* @return phpbb_cache_driver_interface The cache driver
|
||||||
|
*/
|
||||||
|
public function get_driver()
|
||||||
{
|
{
|
||||||
$this->acm = $acm;
|
return $this->driver;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Replaces the cache driver used by this cache service.
|
||||||
|
*
|
||||||
|
* @param phpbb_cache_driver_interface $driver The cache driver
|
||||||
|
*/
|
||||||
|
public function set_driver(phpbb_cache_driver_interface $driver)
|
||||||
|
{
|
||||||
|
$this->driver = $driver;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __call($method, $arguments)
|
public function __call($method, $arguments)
|
||||||
{
|
{
|
||||||
return call_user_func_array(array($this->acm, $method), $arguments);
|
return call_user_func_array(array($this->driver, $method), $arguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -47,7 +66,7 @@ class phpbb_cache_service
|
||||||
{
|
{
|
||||||
global $db;
|
global $db;
|
||||||
|
|
||||||
if (($censors = $this->acm->get('_word_censors')) === false)
|
if (($censors = $this->driver->get('_word_censors')) === false)
|
||||||
{
|
{
|
||||||
$sql = 'SELECT word, replacement
|
$sql = 'SELECT word, replacement
|
||||||
FROM ' . WORDS_TABLE;
|
FROM ' . WORDS_TABLE;
|
||||||
|
@ -61,7 +80,7 @@ class phpbb_cache_service
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
$this->acm->put('_word_censors', $censors);
|
$this->driver->put('_word_censors', $censors);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $censors;
|
return $censors;
|
||||||
|
@ -72,7 +91,7 @@ class phpbb_cache_service
|
||||||
*/
|
*/
|
||||||
function obtain_icons()
|
function obtain_icons()
|
||||||
{
|
{
|
||||||
if (($icons = $this->acm->get('_icons')) === false)
|
if (($icons = $this->driver->get('_icons')) === false)
|
||||||
{
|
{
|
||||||
global $db;
|
global $db;
|
||||||
|
|
||||||
|
@ -92,7 +111,7 @@ class phpbb_cache_service
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
$this->acm->put('_icons', $icons);
|
$this->driver->put('_icons', $icons);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $icons;
|
return $icons;
|
||||||
|
@ -103,7 +122,7 @@ class phpbb_cache_service
|
||||||
*/
|
*/
|
||||||
function obtain_ranks()
|
function obtain_ranks()
|
||||||
{
|
{
|
||||||
if (($ranks = $this->acm->get('_ranks')) === false)
|
if (($ranks = $this->driver->get('_ranks')) === false)
|
||||||
{
|
{
|
||||||
global $db;
|
global $db;
|
||||||
|
|
||||||
|
@ -133,7 +152,7 @@ class phpbb_cache_service
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
$this->acm->put('_ranks', $ranks);
|
$this->driver->put('_ranks', $ranks);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $ranks;
|
return $ranks;
|
||||||
|
@ -148,7 +167,7 @@ class phpbb_cache_service
|
||||||
*/
|
*/
|
||||||
function obtain_attach_extensions($forum_id)
|
function obtain_attach_extensions($forum_id)
|
||||||
{
|
{
|
||||||
if (($extensions = $this->acm->get('_extensions')) === false)
|
if (($extensions = $this->driver->get('_extensions')) === false)
|
||||||
{
|
{
|
||||||
global $db;
|
global $db;
|
||||||
|
|
||||||
|
@ -192,7 +211,7 @@ class phpbb_cache_service
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
$this->acm->put('_extensions', $extensions);
|
$this->driver->put('_extensions', $extensions);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Forum post
|
// Forum post
|
||||||
|
@ -253,7 +272,7 @@ class phpbb_cache_service
|
||||||
*/
|
*/
|
||||||
function obtain_bots()
|
function obtain_bots()
|
||||||
{
|
{
|
||||||
if (($bots = $this->acm->get('_bots')) === false)
|
if (($bots = $this->driver->get('_bots')) === false)
|
||||||
{
|
{
|
||||||
global $db;
|
global $db;
|
||||||
|
|
||||||
|
@ -292,7 +311,7 @@ class phpbb_cache_service
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
$this->acm->put('_bots', $bots);
|
$this->driver->put('_bots', $bots);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $bots;
|
return $bots;
|
||||||
|
@ -313,7 +332,7 @@ class phpbb_cache_service
|
||||||
|
|
||||||
foreach ($parsed_items as $key => $parsed_array)
|
foreach ($parsed_items as $key => $parsed_array)
|
||||||
{
|
{
|
||||||
$parsed_array = $this->acm->get('_cfg_' . $key . '_' . $theme[$key . '_path']);
|
$parsed_array = $this->driver->get('_cfg_' . $key . '_' . $theme[$key . '_path']);
|
||||||
|
|
||||||
if ($parsed_array === false)
|
if ($parsed_array === false)
|
||||||
{
|
{
|
||||||
|
@ -339,7 +358,7 @@ class phpbb_cache_service
|
||||||
$parsed_array = parse_cfg_file($filename);
|
$parsed_array = parse_cfg_file($filename);
|
||||||
$parsed_array['filetime'] = @filemtime($filename);
|
$parsed_array['filetime'] = @filemtime($filename);
|
||||||
|
|
||||||
$this->acm->put('_cfg_' . $key . '_' . $theme[$key . '_path'], $parsed_array);
|
$this->driver->put('_cfg_' . $key . '_' . $theme[$key . '_path'], $parsed_array);
|
||||||
}
|
}
|
||||||
$parsed_items[$key] = $parsed_array;
|
$parsed_items[$key] = $parsed_array;
|
||||||
}
|
}
|
||||||
|
@ -352,7 +371,7 @@ class phpbb_cache_service
|
||||||
*/
|
*/
|
||||||
function obtain_disallowed_usernames()
|
function obtain_disallowed_usernames()
|
||||||
{
|
{
|
||||||
if (($usernames = $this->acm->get('_disallowed_usernames')) === false)
|
if (($usernames = $this->driver->get('_disallowed_usernames')) === false)
|
||||||
{
|
{
|
||||||
global $db;
|
global $db;
|
||||||
|
|
||||||
|
@ -367,7 +386,7 @@ class phpbb_cache_service
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
$this->acm->put('_disallowed_usernames', $usernames);
|
$this->driver->put('_disallowed_usernames', $usernames);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $usernames;
|
return $usernames;
|
||||||
|
@ -380,7 +399,7 @@ class phpbb_cache_service
|
||||||
{
|
{
|
||||||
global $phpbb_root_path, $phpEx;
|
global $phpbb_root_path, $phpEx;
|
||||||
|
|
||||||
if (($hook_files = $this->acm->get('_hooks')) === false)
|
if (($hook_files = $this->driver->get('_hooks')) === false)
|
||||||
{
|
{
|
||||||
$hook_files = array();
|
$hook_files = array();
|
||||||
|
|
||||||
|
@ -399,7 +418,7 @@ class phpbb_cache_service
|
||||||
closedir($dh);
|
closedir($dh);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->acm->put('_hooks', $hook_files);
|
$this->driver->put('_hooks', $hook_files);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $hook_files;
|
return $hook_files;
|
||||||
|
|
|
@ -96,8 +96,8 @@ $class_loader->register();
|
||||||
|
|
||||||
// set up caching
|
// set up caching
|
||||||
$cache_factory = new phpbb_cache_factory($acm_type);
|
$cache_factory = new phpbb_cache_factory($acm_type);
|
||||||
$class_loader->set_cache($cache_factory->get_driver());
|
|
||||||
$cache = $cache_factory->get_service();
|
$cache = $cache_factory->get_service();
|
||||||
|
$class_loader->set_cache($cache->get_driver());
|
||||||
|
|
||||||
$request = new phpbb_request();
|
$request = new phpbb_request();
|
||||||
$user = new user();
|
$user = new user();
|
||||||
|
@ -165,7 +165,7 @@ include($phpbb_root_path . 'language/' . $language . '/install.' . $phpEx);
|
||||||
$inline_update = (request_var('type', 0)) ? true : false;
|
$inline_update = (request_var('type', 0)) ? true : false;
|
||||||
|
|
||||||
// To let set_config() calls succeed, we need to make the config array available globally
|
// To let set_config() calls succeed, we need to make the config array available globally
|
||||||
$config = new phpbb_config_db($db, $cache_factory->get_driver(), CONFIG_TABLE);
|
$config = new phpbb_config_db($db, $cache->get_driver(), CONFIG_TABLE);
|
||||||
set_config(null, null, null, $config);
|
set_config(null, null, null, $config);
|
||||||
set_config_count(null, null, null, $config);
|
set_config_count(null, null, null, $config);
|
||||||
|
|
||||||
|
|
|
@ -172,8 +172,8 @@ $class_loader->register();
|
||||||
|
|
||||||
// set up caching
|
// set up caching
|
||||||
$cache_factory = new phpbb_cache_factory('file');
|
$cache_factory = new phpbb_cache_factory('file');
|
||||||
$class_loader->set_cache($cache_factory->get_driver());
|
|
||||||
$cache = $cache_factory->get_service();
|
$cache = $cache_factory->get_service();
|
||||||
|
$class_loader->set_cache($cache->get_driver());
|
||||||
|
|
||||||
$request = new phpbb_request();
|
$request = new phpbb_request();
|
||||||
|
|
||||||
|
|
|
@ -66,8 +66,8 @@ if ($id)
|
||||||
|
|
||||||
// set up caching
|
// set up caching
|
||||||
$cache_factory = new phpbb_cache_factory($acm_type);
|
$cache_factory = new phpbb_cache_factory($acm_type);
|
||||||
$class_loader->set_cache($cache_factory->get_driver());
|
|
||||||
$cache = $cache_factory->get_service();
|
$cache = $cache_factory->get_service();
|
||||||
|
$class_loader->set_cache($cache->get_driver());
|
||||||
|
|
||||||
$request = new phpbb_request();
|
$request = new phpbb_request();
|
||||||
$db = new $sql_db();
|
$db = new $sql_db();
|
||||||
|
@ -82,7 +82,7 @@ if ($id)
|
||||||
}
|
}
|
||||||
unset($dbpasswd);
|
unset($dbpasswd);
|
||||||
|
|
||||||
$config = new phpbb_config_db($db, $cache_factory->get_driver(), CONFIG_TABLE);
|
$config = new phpbb_config_db($db, $cache->get_driver(), CONFIG_TABLE);
|
||||||
set_config(null, null, null, $config);
|
set_config(null, null, null, $config);
|
||||||
set_config_count(null, null, null, $config);
|
set_config_count(null, null, null, $config);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue