[ticket/12620] Add support of the environments for the ext routing files

PHPBB3-12620
This commit is contained in:
Tristan Darricau 2014-09-05 16:33:57 +02:00
parent 7cd0fd83b8
commit 014eed385b
7 changed files with 40 additions and 8 deletions

View file

@ -21,6 +21,12 @@ if (php_sapi_name() != 'cli')
} }
define('IN_PHPBB', true); define('IN_PHPBB', true);
if (!defined('PHPBB_ENVIRONMENT'))
{
@define('PHPBB_ENVIRONMENT', 'production');
}
$phpbb_root_path = __DIR__ . '/../'; $phpbb_root_path = __DIR__ . '/../';
$phpEx = substr(strrchr(__FILE__, '.'), 1); $phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'includes/startup.' . $phpEx); require($phpbb_root_path . 'includes/startup.' . $phpEx);

View file

@ -58,7 +58,7 @@ function phpbb_get_url_matcher(\phpbb\extension\manager $manager, RequestContext
function phpbb_create_dumped_url_matcher(\phpbb\extension\manager $manager, $root_path, $php_ext) function phpbb_create_dumped_url_matcher(\phpbb\extension\manager $manager, $root_path, $php_ext)
{ {
$provider = new \phpbb\controller\provider(); $provider = new \phpbb\controller\provider();
$provider->find_routing_files($manager->get_finder()); $provider->find_routing_files($manager->all_enabled());
$routes = $provider->find($root_path)->get_routes(); $routes = $provider->find($root_path)->get_routes();
$dumper = new PhpMatcherDumper($routes); $dumper = new PhpMatcherDumper($routes);
$cached_url_matcher_dump = $dumper->dump(array( $cached_url_matcher_dump = $dumper->dump(array(
@ -78,7 +78,7 @@ function phpbb_create_dumped_url_matcher(\phpbb\extension\manager $manager, $roo
function phpbb_create_url_matcher(\phpbb\extension\manager $manager, RequestContext $context, $root_path) function phpbb_create_url_matcher(\phpbb\extension\manager $manager, RequestContext $context, $root_path)
{ {
$provider = new \phpbb\controller\provider(); $provider = new \phpbb\controller\provider();
$provider->find_routing_files($manager->get_finder()); $provider->find_routing_files($manager->all_enabled());
$routes = $provider->find($root_path)->get_routes(); $routes = $provider->find($root_path)->get_routes();
return new UrlMatcher($routes, $context); return new UrlMatcher($routes, $context);
} }

View file

@ -113,12 +113,6 @@ abstract class phpbb_controller_common_helper_route extends phpbb_test_case
) )
); );
$finder = new \phpbb\finder(
new \phpbb\filesystem(),
dirname(__FILE__) . '/',
new phpbb_mock_cache()
);
$finder->set_extensions(array_keys($this->extension_manager->all_enabled()));
$this->router = new phpbb_mock_router($this->extension_manager, dirname(__FILE__) . '/', 'php'); $this->router = new phpbb_mock_router($this->extension_manager, dirname(__FILE__) . '/', 'php');
$this->router->find_routing_files($finder); $this->router->find_routing_files($finder);
$this->router->find(dirname(__FILE__) . '/'); $this->router->find(dirname(__FILE__) . '/');

View file

@ -30,6 +30,11 @@ class phpbb_controller_controller_test extends phpbb_test_case
'ext_active' => '1', 'ext_active' => '1',
'ext_path' => 'ext/vendor2/foo/', 'ext_path' => 'ext/vendor2/foo/',
), ),
'vendor2/bar' => array(
'ext_name' => 'vendor2/bar',
'ext_active' => '1',
'ext_path' => 'ext/vendor2/bar/',
),
)); ));
} }
@ -49,6 +54,9 @@ class phpbb_controller_controller_test extends phpbb_test_case
$this->assertInstanceOf('Symfony\Component\Routing\Route', $routes->get('controller2')); $this->assertInstanceOf('Symfony\Component\Routing\Route', $routes->get('controller2'));
$this->assertEquals('/foo/bar', $routes->get('controller2')->getPath()); $this->assertEquals('/foo/bar', $routes->get('controller2')->getPath());
$this->assertInstanceOf('Symfony\Component\Routing\Route', $routes->get('controller3'));
$this->assertEquals('/bar', $routes->get('controller3')->getPath());
$this->assertNull($routes->get('controller_noroute')); $this->assertNull($routes->get('controller_noroute'));
} }

View file

@ -0,0 +1,3 @@
controller3:
pattern: /bar
defaults: { _controller: bar.controller:handle }

View file

@ -0,0 +1,3 @@
services:
bar.controller:
class: bar\controller

View file

@ -0,0 +1,18 @@
<?php
namespace bar;
use Symfony\Component\HttpFoundation\Response;
class controller
{
/**
* Handle method
*
* @return null
*/
public function handle()
{
return new Response('Test', 200);
}
}