aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2013-10-19 12:12:14 +0200
committerJoas Schilling <nickvergessen@gmx.de>2013-10-19 12:12:14 +0200
commitd45582d32afede64c6a9fa18a76eff6a17544043 (patch)
treec33b8e5e7bb0c84db4f407f562e61714aebc18e8 /phpBB
parent3cc2e619d2a3293aebfdef06f6298a71648112b1 (diff)
downloadforums-d45582d32afede64c6a9fa18a76eff6a17544043.tar
forums-d45582d32afede64c6a9fa18a76eff6a17544043.tar.gz
forums-d45582d32afede64c6a9fa18a76eff6a17544043.tar.bz2
forums-d45582d32afede64c6a9fa18a76eff6a17544043.tar.xz
forums-d45582d32afede64c6a9fa18a76eff6a17544043.zip
[ticket/11948] Allow multiple routing files for extensions
PHPBB3-11948
Diffstat (limited to 'phpBB')
-rw-r--r--phpBB/phpbb/controller/provider.php22
1 files changed, 13 insertions, 9 deletions
diff --git a/phpBB/phpbb/controller/provider.php b/phpBB/phpbb/controller/provider.php
index 3aad08e3aa..683253fdf8 100644
--- a/phpBB/phpbb/controller/provider.php
+++ b/phpBB/phpbb/controller/provider.php
@@ -31,17 +31,17 @@ class provider
* YAML file(s) containing route information
* @var array
*/
- protected $routing_paths;
+ protected $routing_files;
/**
* Construct method
*
- * @param array() $routing_paths Array of strings containing paths
+ * @param array() $routing_files Array of strings containing paths
* to YAML files holding route information
*/
- public function __construct($routing_paths = array())
+ public function __construct($routing_files = array())
{
- $this->routing_paths = $routing_paths;
+ $this->routing_files = $routing_files;
}
/**
@@ -54,12 +54,12 @@ class provider
{
// We hardcode the path to the core config directory
// because the finder cannot find it
- $this->routing_paths = array_merge(array('config'), array_map('dirname', array_keys($finder
+ $this->routing_files = array_merge(array('config/routing.yml'), array_keys($finder
->directory('config')
->prefix('routing')
- ->suffix('yml')
+ ->suffix('.yml')
->find()
- )));
+ ));
return $this;
}
@@ -73,10 +73,14 @@ class provider
public function find($base_path = '')
{
$routes = new RouteCollection;
- foreach ($this->routing_paths as $path)
+ foreach ($this->routing_files as $file_path)
{
+ $path_info = explode('/', $file_path);
+ $file_name = array_pop($path_info);
+ $path = implode('/', $path_info) . '/';
+
$loader = new YamlFileLoader(new FileLocator($base_path . $path));
- $routes->addCollection($loader->load('routing.yml'));
+ $routes->addCollection($loader->load($file_name));
}
return $routes;