[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'); $finder = new \phpbb\finder($this->filesystem, $this->phpbb_root_path, $this->cache, $this->php_ext, $this->cache_name . '_finder');
if ($use_all_available) if ($use_all_available)
{ {
$finder->set_extensions($this->all_available()); $finder->set_extensions(array_keys($this->all_available()));
} }
else else
{ {
$finder->set_extensions($this->all_enabled()); $finder->set_extensions(array_keys($this->all_enabled()));
} }
return $finder; return $finder;
} }

View file

@ -80,12 +80,20 @@ class finder
/** /**
* Set the array of extensions * 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 * @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; return $this;
} }

View file

@ -47,7 +47,7 @@ class phpbb_controller_helper_route_test extends phpbb_test_case
dirname(__FILE__) . '/', dirname(__FILE__) . '/',
new phpbb_mock_cache() 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 = new \phpbb\controller\provider();
$this->provider->find_routing_files($finder); $this->provider->find_routing_files($finder);
$this->provider->find(dirname(__FILE__) . '/'); $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; $cache = new phpbb_mock_cache;
$finder = new \phpbb\finder(new \phpbb\filesystem(), dirname(__FILE__) . '/', $cache, 'php', '_custom_cache_name'); $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(); $files = $finder->suffix('_class.php')->get_files();
$expected_files = array( $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 $classes = $finder
->core_path($query['core_path']) ->core_path($query['core_path'])

View file

@ -40,7 +40,7 @@ class phpbb_pagination_pagination_test extends phpbb_template_template_test_case
dirname(__FILE__) . '/', dirname(__FILE__) . '/',
new phpbb_mock_cache() 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')); $this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '1'));
$provider = new \phpbb\controller\provider(); $provider = new \phpbb\controller\provider();