mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-26 20:08:55 +00:00
[ticket/11948] Allow multiple routing files for extensions
PHPBB3-11948
This commit is contained in:
parent
3cc2e619d2
commit
d45582d32a
1 changed files with 13 additions and 9 deletions
|
@ -31,17 +31,17 @@ class provider
|
||||||
* YAML file(s) containing route information
|
* YAML file(s) containing route information
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $routing_paths;
|
protected $routing_files;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct method
|
* 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
|
* 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
|
// We hardcode the path to the core config directory
|
||||||
// because the finder cannot find it
|
// 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')
|
->directory('config')
|
||||||
->prefix('routing')
|
->prefix('routing')
|
||||||
->suffix('yml')
|
->suffix('.yml')
|
||||||
->find()
|
->find()
|
||||||
)));
|
));
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
@ -73,10 +73,14 @@ class provider
|
||||||
public function find($base_path = '')
|
public function find($base_path = '')
|
||||||
{
|
{
|
||||||
$routes = new RouteCollection;
|
$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));
|
$loader = new YamlFileLoader(new FileLocator($base_path . $path));
|
||||||
$routes->addCollection($loader->load('routing.yml'));
|
$routes->addCollection($loader->load($file_name));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $routes;
|
return $routes;
|
||||||
|
|
Loading…
Add table
Reference in a new issue