aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2014-05-09 09:24:30 +0200
committerJoas Schilling <nickvergessen@gmx.de>2014-06-10 11:47:41 +0200
commit6980fbd27bd57dc01d7265cc742ab01a4bd9f93a (patch)
treeb41a678373e62518ec34b139860031bf6dc5a4d4
parente1707b27ca8b998652fddee571197b24974ebb2f (diff)
downloadforums-6980fbd27bd57dc01d7265cc742ab01a4bd9f93a.tar
forums-6980fbd27bd57dc01d7265cc742ab01a4bd9f93a.tar.gz
forums-6980fbd27bd57dc01d7265cc742ab01a4bd9f93a.tar.bz2
forums-6980fbd27bd57dc01d7265cc742ab01a4bd9f93a.tar.xz
forums-6980fbd27bd57dc01d7265cc742ab01a4bd9f93a.zip
[ticket/12508] Only take a list of names for set_extensions()
PHPBB3-12508
-rw-r--r--phpBB/phpbb/extension/manager.php4
-rw-r--r--phpBB/phpbb/finder.php14
-rw-r--r--tests/controller/helper_route_test.php2
-rw-r--r--tests/extension/finder_test.php4
-rw-r--r--tests/pagination/pagination_test.php2
5 files changed, 17 insertions, 9 deletions
diff --git a/phpBB/phpbb/extension/manager.php b/phpBB/phpbb/extension/manager.php
index bfc6e19b5b..b83bb1b189 100644
--- a/phpBB/phpbb/extension/manager.php
+++ b/phpBB/phpbb/extension/manager.php
@@ -542,11 +542,11 @@ class manager
$finder = new \phpbb\finder($this->filesystem, $this->phpbb_root_path, $this->cache, $this->php_ext, $this->cache_name . '_finder');
if ($use_all_available)
{
- $finder->set_extensions($this->all_available());
+ $finder->set_extensions(array_keys($this->all_available()));
}
else
{
- $finder->set_extensions($this->all_enabled());
+ $finder->set_extensions(array_keys($this->all_enabled()));
}
return $finder;
}
diff --git a/phpBB/phpbb/finder.php b/phpBB/phpbb/finder.php
index 899dc4f290..77a8222b84 100644
--- a/phpBB/phpbb/finder.php
+++ b/phpBB/phpbb/finder.php
@@ -80,12 +80,20 @@ class finder
/**
* Set the array of extensions
*
- * @param array $extensions A list of extensions that should be searched aswell
+ * @param array $extensions A list of extensions that should be searched aswell
+ * @param bool $replace_list Should the list be emptied before adding the extensions
* @return \phpbb\finder This object for chaining calls
*/
- public function set_extensions(array $extensions)
+ public function set_extensions(array $extensions, $replace_list = true)
{
- $this->extensions = $extensions;
+ if ($replace_list)
+ {
+ $this->extensions = array();
+ }
+ foreach ($extensions as $ext_name)
+ {
+ $this->extensions[$ext_name] = $this->phpbb_root_path . 'ext/' . $ext_name . '/';
+ }
return $this;
}
diff --git a/tests/controller/helper_route_test.php b/tests/controller/helper_route_test.php
index f604f5d892..621efaa830 100644
--- a/tests/controller/helper_route_test.php
+++ b/tests/controller/helper_route_test.php
@@ -47,7 +47,7 @@ class phpbb_controller_helper_route_test extends phpbb_test_case
dirname(__FILE__) . '/',
new phpbb_mock_cache()
);
- $finder->set_extensions($this->extension_manager->all_enabled());
+ $finder->set_extensions(array_keys($this->extension_manager->all_enabled()));
$this->provider = new \phpbb\controller\provider();
$this->provider->find_routing_files($finder);
$this->provider->find(dirname(__FILE__) . '/');
diff --git a/tests/extension/finder_test.php b/tests/extension/finder_test.php
index fa30127ca0..5ff4c59722 100644
--- a/tests/extension/finder_test.php
+++ b/tests/extension/finder_test.php
@@ -202,7 +202,7 @@ class phpbb_extension_finder_test extends phpbb_test_case
{
$cache = new phpbb_mock_cache;
$finder = new \phpbb\finder(new \phpbb\filesystem(), dirname(__FILE__) . '/', $cache, 'php', '_custom_cache_name');
- $finder->set_extensions($this->extension_manager->all_enabled());
+ $finder->set_extensions(array_keys($this->extension_manager->all_enabled()));
$files = $finder->suffix('_class.php')->get_files();
$expected_files = array(
@@ -249,7 +249,7 @@ class phpbb_extension_finder_test extends phpbb_test_case
),
))
);
- $finder->set_extensions($this->extension_manager->all_enabled());
+ $finder->set_extensions(array_keys($this->extension_manager->all_enabled()));
$classes = $finder
->core_path($query['core_path'])
diff --git a/tests/pagination/pagination_test.php b/tests/pagination/pagination_test.php
index ecdacc21a4..f253118253 100644
--- a/tests/pagination/pagination_test.php
+++ b/tests/pagination/pagination_test.php
@@ -40,7 +40,7 @@ class phpbb_pagination_pagination_test extends phpbb_template_template_test_case
dirname(__FILE__) . '/',
new phpbb_mock_cache()
);
- $finder->set_extensions($manager->all_enabled());
+ $finder->set_extensions(array_keys($manager->all_enabled()));
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '1'));
$provider = new \phpbb\controller\provider();