diff --git a/phpBB/includes/extension/finder.php b/phpBB/includes/extension/finder.php index 7ba477582c..e94a94c733 100644 --- a/phpBB/includes/extension/finder.php +++ b/phpBB/includes/extension/finder.php @@ -26,6 +26,7 @@ class phpbb_extension_finder protected $phpbb_root_path; protected $cache; protected $phpEx; + protected $cache_name; /** * @var array An associative array, containing all search parameters set in @@ -48,13 +49,16 @@ class phpbb_extension_finder * @param string $phpbb_root_path Path to the phpbb root directory * @param phpbb_cache_driver_interface $cache A cache instance or null * @param string $phpEx php file extension + * @param string $cache_name The name of the cache variable, defaults to + * _ext_finder */ - public function __construct(phpbb_extension_manager $extension_manager, $phpbb_root_path = '', phpbb_cache_driver_interface $cache = null, $phpEx = '.php') + public function __construct(phpbb_extension_manager $extension_manager, $phpbb_root_path = '', phpbb_cache_driver_interface $cache = null, $phpEx = '.php', $cache_name = '_ext_finder') { $this->extension_manager = $extension_manager; $this->phpbb_root_path = $phpbb_root_path; $this->cache = $cache; $this->phpEx = $phpEx; + $this->cache_name = $cache_name; $this->query = array( 'default_path' => false, @@ -66,7 +70,7 @@ class phpbb_extension_finder 'directory' => false, ); - $this->cached_queries = ($this->cache) ? $this->cache->get('_ext_finder') : false; + $this->cached_queries = ($this->cache) ? $this->cache->get($this->cache_name) : false; } /** @@ -284,7 +288,7 @@ class phpbb_extension_finder if ($cache && $this->cache) { $this->cached_queries[$query] = $files; - $this->cache->put('_ext_finder', $this->cached_queries); + $this->cache->put($this->cache_name, $this->cached_queries); } return $files; diff --git a/phpBB/includes/extension/manager.php b/phpBB/includes/extension/manager.php index 45250e623a..443eaf011b 100644 --- a/phpBB/includes/extension/manager.php +++ b/phpBB/includes/extension/manager.php @@ -27,6 +27,7 @@ class phpbb_extension_manager protected $extensions; protected $extension_table; protected $phpbb_root_path; + protected $cache_name; /** * Creates a manager and loads information from database @@ -36,16 +37,18 @@ class phpbb_extension_manager * @param string $phpbb_root_path Path to the phpbb includes directory. * @param string $phpEx php file extension * @param phpbb_cache_driver_interface $cache A cache instance or null + * @param string $cache_name The name of the cache variable, defaults to _ext */ - public function __construct(dbal $db, $extension_table, $phpbb_root_path, $phpEx = '.php', phpbb_cache_driver_interface $cache = null) + public function __construct(dbal $db, $extension_table, $phpbb_root_path, $phpEx = '.php', phpbb_cache_driver_interface $cache = null, $cache_name = '_ext') { $this->phpbb_root_path = $phpbb_root_path; $this->db = $db; $this->cache = $cache; $this->phpEx = $phpEx; $this->extension_table = $extension_table; + $this->cache_name = $cache_name; - $this->extensions = $this->cache->get('_ext'); + $this->extensions = $this->cache->get($this->cache_name); if ($this->extensions === false) { @@ -75,7 +78,7 @@ class phpbb_extension_manager } ksort($this->extensions); - $this->cache->put('_ext', $this->extensions); + $this->cache->put($this->cache_name, $this->extensions); } /** @@ -356,6 +359,6 @@ class phpbb_extension_manager */ public function get_finder() { - return new phpbb_extension_finder($this, $this->phpbb_root_path, $this->cache, $this->phpEx); + return new phpbb_extension_finder($this, $this->phpbb_root_path, $this->cache, $this->phpEx, $this->cache_name . '_finder'); } } diff --git a/tests/extension/finder_test.php b/tests/extension/finder_test.php index fb2faaf5c0..cae11a5bfa 100644 --- a/tests/extension/finder_test.php +++ b/tests/extension/finder_test.php @@ -125,7 +125,7 @@ class phpbb_extension_finder_test extends phpbb_test_case public function test_get_classes_create_cache() { $cache = new phpbb_mock_cache; - $finder = new phpbb_extension_finder($this->extension_manager, dirname(__FILE__) . '/includes/', $cache); + $finder = new phpbb_extension_finder($this->extension_manager, dirname(__FILE__) . '/includes/', $cache, '.php', '_custom_cache_name'); $files = $finder->suffix('_class.php')->get_files(); sort($files); @@ -147,7 +147,7 @@ class phpbb_extension_finder_test extends phpbb_test_case ); $this->assertEquals($expected_files, $files); - $cache->checkAssociativeVar($this, '_extension_finder', array( + $cache->checkAssociativeVar($this, '_custom_cache_name', array( md5(serialize($query)) => $expected_files, )); } @@ -165,7 +165,7 @@ class phpbb_extension_finder_test extends phpbb_test_case ); $finder = new phpbb_extension_finder($this->extension_manager, dirname(__FILE__) . '/includes/', new phpbb_mock_cache(array( - '_extension_finder' => array( + '_ext_finder' => array( md5(serialize($query)) => array('file_name'), ), )));