Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 98eb91c

Browse filesBrowse files
committed
[FrameworkBundle] Improve DX of RedirectController
1 parent 5b360e2 commit 98eb91c
Copy full SHA for 98eb91c

File tree

2 files changed

+23
-0
lines changed
Filter options

2 files changed

+23
-0
lines changed

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

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Controller/RedirectController.php
+9Lines 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->redirectAction($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

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Tests/Controller/RedirectControllerTest.php
+14Lines 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 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.