Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 349cd92

Browse files
committed
[FrameworkBundle] Improve DX of RedirectController
1 parent 5b360e2 commit 349cd92

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

src/Symfony/Bundle/FrameworkBundle/Controller/RedirectController.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,4 +146,13 @@ public function urlRedirectAction(Request $request, string $path, bool $permanen
146146

147147
return new RedirectResponse($url, $statusCode);
148148
}
149+
150+
public function __invoke(Request $request): Response
151+
{
152+
if ($route = $request->attributes->get('route')) {
153+
return $this->redirectAction($request, $route, $request->attributes->getBoolean('permanent', false), $request->attributes->get('ignoreAttributes', false));
154+
}
155+
156+
return $this->urlRedirectAction($request, $request->attributes->get('path'), $request->attributes->getBoolean('permanent', false), $request->attributes->get('scheme'), $request->attributes->getInt('httpPort'), $request->attributes->getInt('httpsPort'));
157+
}
149158
}

src/Symfony/Bundle/FrameworkBundle/Tests/Controller/RedirectControllerTest.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,20 @@ public function testEmptyRoute()
4242
} catch (HttpException $e) {
4343
$this->assertSame(404, $e->getStatusCode());
4444
}
45+
46+
try {
47+
$controller->redirectAction($request, '', true);
48+
$this->fail('Expected Symfony\Component\HttpKernel\Exception\HttpException to be thrown');
49+
} catch (HttpException $e) {
50+
$this->assertSame(410, $e->getStatusCode());
51+
}
52+
53+
try {
54+
$controller($request, '', false);
55+
$this->fail('Expected Symfony\Component\HttpKernel\Exception\HttpException to be thrown');
56+
} catch (HttpException $e) {
57+
$this->assertSame(404, $e->getStatusCode());
58+
}
4559
}
4660

4761
/**

0 commit comments

Comments
 (0)