[ticket/12508] Only take a list of names for set_extensions()

PHPBB3-12508
This commit is contained in:
Joas Schilling 2014-05-09 09:24:30 +02:00
parent e1707b27ca
commit 6980fbd27b
5 changed files with 17 additions and 9 deletions

View file

@ -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;
}

View file

@ -81,11 +81,19 @@ class finder
* Set the array of extensions
*
* @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;
}

View file

@ -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__) . '/');

View file

@ -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'])

View file

@ -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();