Fix supporting defaults for routes
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
parent
32927fd470
commit
3f447b9c8c
|
@ -141,8 +141,7 @@ class RouteConfig {
|
||||||
$routeName = $routeNamePrefix . $this->appName . '.' . $controller . '.' . $action . $postfix;
|
$routeName = $routeNamePrefix . $this->appName . '.' . $controller . '.' . $action . $postfix;
|
||||||
|
|
||||||
$router = $this->router->create($routeName, $url)
|
$router = $this->router->create($routeName, $url)
|
||||||
->method($verb)
|
->method($verb);
|
||||||
->setDefault('caller', [$this->appName, $controllerName, $actionName]);
|
|
||||||
|
|
||||||
// optionally register requirements for route. This is used to
|
// optionally register requirements for route. This is used to
|
||||||
// tell the route parser how url parameters should be matched
|
// tell the route parser how url parameters should be matched
|
||||||
|
@ -152,9 +151,13 @@ class RouteConfig {
|
||||||
|
|
||||||
// optionally register defaults for route. This is used to
|
// optionally register defaults for route. This is used to
|
||||||
// tell the route parser how url parameters should be default valued
|
// tell the route parser how url parameters should be default valued
|
||||||
|
$defaults = [];
|
||||||
if (array_key_exists('defaults', $route)) {
|
if (array_key_exists('defaults', $route)) {
|
||||||
$router->defaults($route['defaults']);
|
$defaults = $route['defaults'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$defaults['caller'] = [$this->appName, $controllerName, $actionName];
|
||||||
|
$router->defaults($defaults);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -230,9 +233,10 @@ class RouteConfig {
|
||||||
|
|
||||||
$routeName = $routeNamePrefix . $this->appName . '.' . strtolower($resource) . '.' . strtolower($method);
|
$routeName = $routeNamePrefix . $this->appName . '.' . strtolower($resource) . '.' . strtolower($method);
|
||||||
|
|
||||||
$this->router->create($routeName, $url)
|
$route = $this->router->create($routeName, $url)
|
||||||
->method($verb)
|
->method($verb);
|
||||||
->setDefault('caller', [$this->appName, $controllerName, $actionName]);
|
|
||||||
|
$route->defaults(['caller' => [$this->appName, $controllerName, $actionName]]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -419,7 +419,7 @@ class RoutingTest extends \Test\TestCase {
|
||||||
array $defaults=[]
|
array $defaults=[]
|
||||||
) {
|
) {
|
||||||
$route = $this->getMockBuilder(Route::class)
|
$route = $this->getMockBuilder(Route::class)
|
||||||
->onlyMethods(['method', 'setDefault', 'requirements', 'defaults'])
|
->onlyMethods(['method', 'requirements', 'defaults'])
|
||||||
->disableOriginalConstructor()
|
->disableOriginalConstructor()
|
||||||
->getMock();
|
->getMock();
|
||||||
$route
|
$route
|
||||||
|
@ -428,12 +428,6 @@ class RoutingTest extends \Test\TestCase {
|
||||||
->with($this->equalTo($verb))
|
->with($this->equalTo($verb))
|
||||||
->willReturn($route);
|
->willReturn($route);
|
||||||
|
|
||||||
$route
|
|
||||||
->expects($this->once())
|
|
||||||
->method('setDefault')
|
|
||||||
->with('caller', ['app1', $controllerName, $actionName])
|
|
||||||
->willReturn($route);
|
|
||||||
|
|
||||||
if (count($requirements) > 0) {
|
if (count($requirements) > 0) {
|
||||||
$route
|
$route
|
||||||
->expects($this->once())
|
->expects($this->once())
|
||||||
|
@ -442,13 +436,15 @@ class RoutingTest extends \Test\TestCase {
|
||||||
->willReturn($route);
|
->willReturn($route);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($defaults) > 0) {
|
$route->expects($this->once())
|
||||||
$route
|
|
||||||
->expects($this->once())
|
|
||||||
->method('defaults')
|
->method('defaults')
|
||||||
->with($this->equalTo($defaults))
|
->with($this->callback(function (array $def) use ($defaults, $controllerName, $actionName) {
|
||||||
|
$defaults['caller'] = ['app1', $controllerName, $actionName];
|
||||||
|
|
||||||
|
$this->assertEquals($defaults, $def);
|
||||||
|
return true;
|
||||||
|
}))
|
||||||
->willReturn($route);
|
->willReturn($route);
|
||||||
}
|
|
||||||
|
|
||||||
return $route;
|
return $route;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue