[ticket/12508] Fix usages of the finder

PHPBB3-12508
This commit is contained in:
Joas Schilling 2014-05-06 17:50:46 +02:00
parent c20653dfbe
commit d45c681b40
6 changed files with 23 additions and 20 deletions

View file

@ -44,17 +44,9 @@ require($phpbb_root_path . 'phpbb/class_loader.' . $phpEx);
$phpbb_class_loader = new \phpbb\class_loader('phpbb\\', "{$phpbb_root_path}phpbb/", $phpEx); $phpbb_class_loader = new \phpbb\class_loader('phpbb\\', "{$phpbb_root_path}phpbb/", $phpEx);
$phpbb_class_loader->register(); $phpbb_class_loader->register();
class phpbb_extension_empty_manager extends \phpbb\extension\manager $finder = new \phpbb\extension\finder(new \phpbb\filesystem(), $phpbb_root_path);
{
public function __construct()
{
$this->extensions = array();
}
}
$finder = new \phpbb\extension\finder(new \phpbb_extension_empty_manager(), new \phpbb\filesystem(), $phpbb_root_path);
$classes = $finder->core_path('phpbb/') $classes = $finder->core_path('phpbb/')
->directory('db/migration/data') ->directory('/db/migration/data')
->get_classes(); ->get_classes();
$db = new \phpbb\db\driver\sqlite(); $db = new \phpbb\db\driver\sqlite();

View file

@ -561,14 +561,14 @@ class acp_modules
$directory = $phpbb_root_path . 'includes/' . $module_class . '/info/'; $directory = $phpbb_root_path . 'includes/' . $module_class . '/info/';
$fileinfo = array(); $fileinfo = array();
$finder = $phpbb_extension_manager->get_finder(); $finder = $phpbb_extension_manager->get_finder($use_all_available);
$modules = $finder $modules = $finder
->extension_suffix('_module') ->extension_suffix('_module')
->extension_directory("/$module_class") ->extension_directory("/$module_class")
->core_path("includes/$module_class/info/") ->core_path("includes/$module_class/info/")
->core_prefix($module_class . '_') ->core_prefix($module_class . '_')
->get_classes(true, $use_all_available); ->get_classes(true);
foreach ($modules as $cur_module) foreach ($modules as $cur_module)
{ {

View file

@ -534,10 +534,20 @@ class manager
/** /**
* Instantiates a \phpbb\extension\finder. * Instantiates a \phpbb\extension\finder.
* *
* @param bool $use_all_available Should we load all extensions, or just enabled ones
* @return \phpbb\extension\finder An extension finder instance * @return \phpbb\extension\finder An extension finder instance
*/ */
public function get_finder() public function get_finder($use_all_available = false)
{ {
return new \phpbb\extension\finder($this, $this->filesystem, $this->phpbb_root_path, $this->cache, $this->php_ext, $this->cache_name . '_finder'); $finder = new \phpbb\extension\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());
}
else
{
$finder->set_extensions($this->all_enabled());
}
return $finder;
} }
} }

View file

@ -43,11 +43,11 @@ class phpbb_controller_helper_route_test extends phpbb_test_case
); );
$finder = new \phpbb\extension\finder( $finder = new \phpbb\extension\finder(
$this->extension_manager,
new \phpbb\filesystem(), new \phpbb\filesystem(),
dirname(__FILE__) . '/', dirname(__FILE__) . '/',
new phpbb_mock_cache() new phpbb_mock_cache()
); );
$finder->set_extensions($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

@ -201,7 +201,8 @@ class phpbb_extension_finder_test extends phpbb_test_case
public function test_get_classes_create_cache() public function test_get_classes_create_cache()
{ {
$cache = new phpbb_mock_cache; $cache = new phpbb_mock_cache;
$finder = new \phpbb\extension\finder($this->extension_manager, new \phpbb\filesystem(), dirname(__FILE__) . '/', $cache, 'php', '_custom_cache_name'); $finder = new \phpbb\extension\finder(new \phpbb\filesystem(), dirname(__FILE__) . '/', $cache, 'php', '_custom_cache_name');
$finder->set_extensions($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(
@ -240,7 +241,6 @@ class phpbb_extension_finder_test extends phpbb_test_case
); );
$finder = new \phpbb\extension\finder( $finder = new \phpbb\extension\finder(
$this->extension_manager,
new \phpbb\filesystem(), new \phpbb\filesystem(),
dirname(__FILE__) . '/', dirname(__FILE__) . '/',
new phpbb_mock_cache(array( new phpbb_mock_cache(array(
@ -249,6 +249,7 @@ class phpbb_extension_finder_test extends phpbb_test_case
), ),
)) ))
); );
$finder->set_extensions($this->extension_manager->all_enabled());
$classes = $finder $classes = $finder
->core_path($query['core_path']) ->core_path($query['core_path'])

View file

@ -35,16 +35,16 @@ class phpbb_pagination_pagination_test extends phpbb_template_template_test_case
->will($this->returnCallback(array($this, 'return_callback_implode'))); ->will($this->returnCallback(array($this, 'return_callback_implode')));
$manager = new phpbb_mock_extension_manager(dirname(__FILE__) . '/', array()); $manager = new phpbb_mock_extension_manager(dirname(__FILE__) . '/', array());
$this->finder = new \phpbb\extension\finder( $finder = new \phpbb\extension\finder(
$manager,
new \phpbb\filesystem(), new \phpbb\filesystem(),
dirname(__FILE__) . '/', dirname(__FILE__) . '/',
new phpbb_mock_cache() new phpbb_mock_cache()
); );
$finder->set_extensions($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();
$provider->find_routing_files($this->finder); $provider->find_routing_files($finder);
$provider->find(dirname(__FILE__) . '/'); $provider->find(dirname(__FILE__) . '/');
$this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $provider, $manager, '', 'php', dirname(__FILE__) . '/'); $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $provider, $manager, '', 'php', dirname(__FILE__) . '/');
$this->pagination = new \phpbb\pagination($this->template, $this->user, $this->helper); $this->pagination = new \phpbb\pagination($this->template, $this->user, $this->helper);