mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 04:18:52 +00:00
[ticket/12620] Add support of the environments for the ext routing files
PHPBB3-12620
This commit is contained in:
parent
7cd0fd83b8
commit
014eed385b
7 changed files with 40 additions and 8 deletions
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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__) . '/');
|
||||||
|
|
|
@ -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'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
controller3:
|
||||||
|
pattern: /bar
|
||||||
|
defaults: { _controller: bar.controller:handle }
|
3
tests/controller/ext/vendor2/bar/config/services.yml
Normal file
3
tests/controller/ext/vendor2/bar/config/services.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
services:
|
||||||
|
bar.controller:
|
||||||
|
class: bar\controller
|
18
tests/controller/ext/vendor2/bar/controller.php
Normal file
18
tests/controller/ext/vendor2/bar/controller.php
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue