Skip to content

Commit 38d12ea

Browse files
weaverryanRobin Chalas
authored andcommitted
Proposing Flex-specific error messages in the controller shortcuts
1 parent 3a23ec7 commit 38d12ea

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

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

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ protected function file($file, string $fileName = null, string $disposition = Re
153153
protected function addFlash(string $type, string $message)
154154
{
155155
if (!$this->container->has('session')) {
156-
throw new \LogicException('You can not use the addFlash method if sessions are disabled.');
156+
throw new \LogicException('You can not use the addFlash method if sessions are disabled. Enable them in config/packages/framework.yaml.');
157157
}
158158

159159
$this->container->get('session')->getFlashBag()->add($type, $message);
@@ -169,7 +169,7 @@ protected function addFlash(string $type, string $message)
169169
protected function isGranted($attributes, $subject = null): bool
170170
{
171171
if (!$this->container->has('security.authorization_checker')) {
172-
throw new \LogicException('The SecurityBundle is not registered in your application.');
172+
throw new \LogicException('The SecurityBundle is not registered in your application. Try running "composer require security"');
173173
}
174174

175175
return $this->container->get('security.authorization_checker')->isGranted($attributes, $subject);
@@ -206,7 +206,7 @@ protected function renderView(string $view, array $parameters = array()): string
206206
}
207207

208208
if (!$this->container->has('twig')) {
209-
throw new \LogicException('You can not use the "renderView" method if the Templating Component or the Twig Bundle are not available.');
209+
throw new \LogicException('You can not use the "renderView" method if the Templating Component or the Twig Bundle are not available. Try running "composer require twig"');
210210
}
211211

212212
return $this->container->get('twig')->render($view, $parameters);
@@ -224,7 +224,7 @@ protected function render(string $view, array $parameters = array(), Response $r
224224
} elseif ($this->container->has('twig')) {
225225
$content = $this->container->get('twig')->render($view, $parameters);
226226
} else {
227-
throw new \LogicException('You can not use the "render" method if the Templating Component or the Twig Bundle are not available.');
227+
throw new \LogicException('You can not use the "render" method if the Templating Component or the Twig Bundle are not available. Try running "composer require twig"');
228228
}
229229

230230
if (null === $response) {
@@ -256,7 +256,7 @@ protected function stream(string $view, array $parameters = array(), StreamedRes
256256
$twig->display($view, $parameters);
257257
};
258258
} else {
259-
throw new \LogicException('You can not use the "stream" method if the Templating Component or the Twig Bundle are not available.');
259+
throw new \LogicException('You can not use the "stream" method if the Templating Component or the Twig Bundle are not available. Try running "composer require twig"');
260260
}
261261

262262
if (null === $response) {
@@ -296,7 +296,7 @@ protected function createNotFoundException(string $message = 'Not Found', \Excep
296296
protected function createAccessDeniedException(string $message = 'Access Denied.', \Exception $previous = null): AccessDeniedException
297297
{
298298
if (!class_exists(AccessDeniedException::class)) {
299-
throw new \LogicException('You can not use the "createAccessDeniedException" method if the Security component is not available.');
299+
throw new \LogicException('You can not use the "createAccessDeniedException" method if the Security component is not available. Try running "composer require security"');
300300
}
301301

302302
return new AccessDeniedException($message, $previous);
@@ -332,7 +332,7 @@ protected function createFormBuilder($data = null, array $options = array()): Fo
332332
protected function getDoctrine(): ManagerRegistry
333333
{
334334
if (!$this->container->has('doctrine')) {
335-
throw new \LogicException('The DoctrineBundle is not registered in your application.');
335+
throw new \LogicException('The DoctrineBundle is not registered in your application. Try running "composer require doctrine"');
336336
}
337337

338338
return $this->container->get('doctrine');
@@ -352,7 +352,7 @@ protected function getDoctrine(): ManagerRegistry
352352
protected function getUser()
353353
{
354354
if (!$this->container->has('security.token_storage')) {
355-
throw new \LogicException('The SecurityBundle is not registered in your application.');
355+
throw new \LogicException('The SecurityBundle is not registered in your application. Try running "composer require security"');
356356
}
357357

358358
if (null === $token = $this->container->get('security.token_storage')->getToken()) {
@@ -378,7 +378,7 @@ protected function getUser()
378378
protected function isCsrfTokenValid(string $id, string $token): bool
379379
{
380380
if (!$this->container->has('security.csrf.token_manager')) {
381-
throw new \LogicException('CSRF protection is not enabled in your application.');
381+
throw new \LogicException('CSRF protection is not enabled in your application. Enable it with the "csrf_protection" key in "config/packages/framework.yaml"');
382382
}
383383

384384
return $this->container->get('security.csrf.token_manager')->isTokenValid(new CsrfToken($id, $token));

0 commit comments

Comments
 (0)