diff options
| -rw-r--r-- | phpBB/config/services.yml | 7 | ||||
| -rw-r--r-- | phpBB/includes/functions_url_matcher.php | 8 | ||||
| -rw-r--r-- | phpBB/phpbb/controller/helper.php | 6 | ||||
| -rw-r--r-- | phpBB/phpbb/controller/provider.php | 30 | ||||
| -rw-r--r-- | tests/controller/controller_test.php | 6 | ||||
| -rw-r--r-- | tests/controller/helper_route_test.php | 4 | ||||
| -rw-r--r-- | tests/pagination/pagination_test.php | 2 | 
7 files changed, 28 insertions, 35 deletions
| diff --git a/phpBB/config/services.yml b/phpBB/config/services.yml index 3427f95cc1..e474c51ae0 100644 --- a/phpBB/config/services.yml +++ b/phpBB/config/services.yml @@ -91,10 +91,10 @@ services:      controller.helper:          class: phpbb\controller\helper          arguments: -            - @ext.finder              - @template              - @user              - @config +            - @controller.provider              - %core.root_path%              - %core.php_ext% @@ -105,6 +105,11 @@ services:              - @service_container              - @template +    controller.provider: +        class: phpbb\controller\provider +        arguments: +            - @ext.finder +      cron.task_collection:          class: phpbb\di\service_collection          arguments: diff --git a/phpBB/includes/functions_url_matcher.php b/phpBB/includes/functions_url_matcher.php index c5d6815119..4db1bfa01f 100644 --- a/phpBB/includes/functions_url_matcher.php +++ b/phpBB/includes/functions_url_matcher.php @@ -53,8 +53,8 @@ function phpbb_get_url_matcher(\phpbb\extension\finder $finder, RequestContext $  */  function phpbb_create_dumped_url_matcher(\phpbb\extension\finder $finder, $root_path, $php_ext)  { -	$provider = new \phpbb\controller\provider(); -	$routes = $provider->import_paths_from_finder($finder)->find($root_path); +	$provider = new \phpbb\controller\provider($finder); +	$routes = $provider->find($root_path);  	$dumper = new PhpMatcherDumper($routes);  	$cached_url_matcher_dump = $dumper->dump(array(  		'class'			=> 'phpbb_url_matcher', @@ -72,8 +72,8 @@ function phpbb_create_dumped_url_matcher(\phpbb\extension\finder $finder, $root_  */  function phpbb_create_url_matcher(\phpbb\extension\finder $finder, RequestContext $context, $root_path)  { -	$provider = new \phpbb\controller\provider(); -	$routes = $provider->import_paths_from_finder($finder)->find($root_path); +	$provider = new \phpbb\controller\provider($finder); +	$routes = $provider->find($root_path);  	return new UrlMatcher($routes, $context);  } diff --git a/phpBB/phpbb/controller/helper.php b/phpBB/phpbb/controller/helper.php index daa52ec672..c97e0883f4 100644 --- a/phpBB/phpbb/controller/helper.php +++ b/phpBB/phpbb/controller/helper.php @@ -58,16 +58,14 @@ class helper  	* @param string $phpbb_root_path phpBB root path  	* @param string $php_ext PHP extension  	*/ -	public function __construct(\phpbb\extension\finder $finder, \phpbb\template\template $template, \phpbb\user $user, \phpbb\config\config $config, $phpbb_root_path, $php_ext) +	public function __construct(\phpbb\template\template $template, \phpbb\user $user, \phpbb\config\config $config, \phpbb\controller\provider $provider, $phpbb_root_path, $php_ext)  	{  		$this->template = $template;  		$this->user = $user;  		$this->config = $config;  		$this->phpbb_root_path = $phpbb_root_path;  		$this->php_ext = $php_ext; - -		$provider = new \phpbb\controller\provider(); -		$this->route_collection = $provider->import_paths_from_finder($finder)->find($this->phpbb_root_path); +		$this->route_collection = $provider->find($this->phpbb_root_path);  	} diff --git a/phpBB/phpbb/controller/provider.php b/phpBB/phpbb/controller/provider.php index fde51696e8..fbe717f1af 100644 --- a/phpBB/phpbb/controller/provider.php +++ b/phpBB/phpbb/controller/provider.php @@ -31,28 +31,20 @@ class provider  	* @param array() $routing_files Array of strings containing paths  	*							to YAML files holding route information  	*/ -	public function __construct($routing_files = array()) +	public function __construct(\phpbb\extension\finder $finder = null, $routing_files = array())  	{  		$this->routing_files = $routing_files; -	} - -	/** -	* Locate paths containing routing files -	* This sets an internal property but does not return the paths. -	* -	* @return The current instance of this object for method chaining -	*/ -	public function import_paths_from_finder(\phpbb\extension\finder $finder) -	{ -		// We hardcode the path to the core config directory -		// because the finder cannot find it -		$this->routing_files = array_merge(array('config/routing.yml'), array_keys($finder -			->directory('config') -			->suffix('routing.yml') -			->find() -		)); -		return $this; +		if ($finder) +		{ +			// We hardcode the path to the core config directory +			// because the finder cannot find it +			$this->routing_files = array_merge($this->routing_files, array('config/routing.yml'), array_keys($finder +					->directory('config') +					->suffix('routing.yml') +					->find() +			)); +		}  	}  	/** diff --git a/tests/controller/controller_test.php b/tests/controller/controller_test.php index 8709f449db..597f01fa0f 100644 --- a/tests/controller/controller_test.php +++ b/tests/controller/controller_test.php @@ -31,10 +31,8 @@ class phpbb_controller_controller_test extends phpbb_test_case  	public function test_provider()  	{ -		$provider = new \phpbb\controller\provider; -		$routes = $provider -			->import_paths_from_finder($this->extension_manager->get_finder()) -			->find(__DIR__); +		$provider = new \phpbb\controller\provider($this->extension_manager->get_finder()); +		$routes = $provider->find(__DIR__);  		// This will need to be updated if any new routes are defined  		$this->assertInstanceOf('Symfony\Component\Routing\Route', $routes->get('core_controller')); diff --git a/tests/controller/helper_route_test.php b/tests/controller/helper_route_test.php index 3cd8a7237d..21dbe2a87e 100644 --- a/tests/controller/helper_route_test.php +++ b/tests/controller/helper_route_test.php @@ -80,7 +80,7 @@ class phpbb_controller_helper_route_test extends phpbb_test_case  	*/  	public function test_helper_url_no_rewrite($route, $params, $is_amp, $session_id, $expected, $description)  	{ -		$this->helper = new \phpbb\controller\helper($this->finder, $this->template, $this->user, $this->config, dirname(__FILE__) . '/', 'php'); +		$this->helper = new \phpbb\controller\helper($this->template, $this->user, $this->config, new \phpbb\controller\provider($this->finder), dirname(__FILE__) . '/', 'php');  		$this->assertEquals(dirname(__FILE__) . '/' . $expected, $this->helper->route($route, $params, $is_amp, $session_id));  	} @@ -120,7 +120,7 @@ class phpbb_controller_helper_route_test extends phpbb_test_case  	public function test_helper_url_with_rewrite($route, $params, $is_amp, $session_id, $expected, $description)  	{  		$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '1')); -		$this->helper = new \phpbb\controller\helper($this->finder, $this->template, $this->user, $this->config, dirname(__FILE__) . '/', 'php'); +		$this->helper = new \phpbb\controller\helper($this->template, $this->user, $this->config, new \phpbb\controller\provider($this->finder), dirname(__FILE__) . '/', 'php');  		$this->assertEquals(dirname(__FILE__) . '/' . $expected, $this->helper->route($route, $params, $is_amp, $session_id));  	}  } diff --git a/tests/pagination/pagination_test.php b/tests/pagination/pagination_test.php index 38ab8e62a4..89be33ebab 100644 --- a/tests/pagination/pagination_test.php +++ b/tests/pagination/pagination_test.php @@ -38,7 +38,7 @@ class phpbb_pagination_pagination_test extends phpbb_template_template_test_case  		);  		$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '1')); -		$this->helper = new \phpbb\controller\helper($this->finder, $this->template, $this->user, $this->config, dirname(__FILE__) . '/', 'php'); +		$this->helper = new \phpbb\controller\helper($this->template, $this->user, $this->config, new \phpbb\controller\provider($this->finder), dirname(__FILE__) . '/', 'php');  		$this->pagination = new \phpbb\pagination($this->template, $this->user, $this->helper);  	} | 
