mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-07-11 21:22:17 +00:00
Merge pull request #78 from skipperbent/development
[BUGFIX] Fixed nested groups not merging settings to routes
This commit is contained in:
@@ -91,7 +91,7 @@ class RouterBase {
|
|||||||
if($route instanceof RouterGroup && is_callable($route->getCallback())) {
|
if($route instanceof RouterGroup && is_callable($route->getCallback())) {
|
||||||
$group = $route;
|
$group = $route;
|
||||||
$route->renderRoute($this->request);
|
$route->renderRoute($this->request);
|
||||||
$mergedSettings = array_merge($route->getMergeableSettings(), $settings);
|
$mergedSettings = array_merge($settings, $route->getMergeableSettings());
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->currentRoute = null;
|
$this->currentRoute = null;
|
||||||
@@ -373,7 +373,7 @@ class RouterBase {
|
|||||||
$route = $this->controllerUrlMap[$i];
|
$route = $this->controllerUrlMap[$i];
|
||||||
|
|
||||||
// Check an alias exist, if the matches - use it
|
// Check an alias exist, if the matches - use it
|
||||||
if($route instanceof RouterRoute && strtolower($route->getAlias()) === strtolower($controller)) {
|
if($route instanceof RouterRoute && $route->hasAlias($controller)) {
|
||||||
return $this->processUrl($route, $route->getMethod(), $parameters, $getParams);
|
return $this->processUrl($route, $route->getMethod(), $parameters, $getParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -88,4 +88,18 @@ class RouterGroup extends RouterEntry {
|
|||||||
return $this->domain;
|
return $this->domain;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array $settings
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public function addSettings(array $settings = null) {
|
||||||
|
if(isset($settings['namespace'])) {
|
||||||
|
unset($settings['namespace']);
|
||||||
|
}
|
||||||
|
if(is_array($settings)) {
|
||||||
|
$this->settings = array_merge($this->settings, $settings);
|
||||||
|
}
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -15,8 +15,6 @@ class RouterRoute extends RouterEntry {
|
|||||||
parent::__construct();
|
parent::__construct();
|
||||||
$this->setUrl($url);
|
$this->setUrl($url);
|
||||||
$this->setCallback($callback);
|
$this->setCallback($callback);
|
||||||
|
|
||||||
$this->settings['aliases'] = array();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function matchRoute(Request $request) {
|
public function matchRoute(Request $request) {
|
||||||
@@ -50,8 +48,6 @@ class RouterRoute extends RouterEntry {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,15 +84,37 @@ class RouterRoute extends RouterEntry {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get alias for the url which can be used when getting the url route.
|
* Get alias for the url which can be used when getting the url route.
|
||||||
* @return string
|
* @return string|array
|
||||||
*/
|
*/
|
||||||
public function getAlias(){
|
public function getAlias(){
|
||||||
return $this->alias;
|
return $this->alias;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if route has given alias.
|
||||||
|
*
|
||||||
|
* @param $name
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function hasAlias($name) {
|
||||||
|
if(is_array($this->alias)) {
|
||||||
|
foreach($this->alias as $alias) {
|
||||||
|
if(strtolower($alias) === strtolower($name)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(strtolower($this->getAlias()) === strtolower($name)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the url alias for easier getting the url route.
|
* Set the url alias for easier getting the url route.
|
||||||
* @param string $alias
|
* @param string|array $alias
|
||||||
* @return self
|
* @return self
|
||||||
*/
|
*/
|
||||||
public function setAlias($alias){
|
public function setAlias($alias){
|
||||||
|
|||||||
Reference in New Issue
Block a user