Proposing Flex-specific error messages in the controller shortcuts

This commit is contained in:
Ryan Weaver 2017-11-23 07:12:55 -05:00
parent 38ddcefc63
commit d377b1545b

View File

@ -153,7 +153,7 @@ trait ControllerTrait
protected function addFlash(string $type, string $message) protected function addFlash(string $type, string $message)
{ {
if (!$this->container->has('session')) { if (!$this->container->has('session')) {
throw new \LogicException('You can not use the addFlash method if sessions are disabled.'); throw new \LogicException('You can not use the addFlash method if sessions are disabled. Enable them in config/packages/framework.yaml.');
} }
$this->container->get('session')->getFlashBag()->add($type, $message); $this->container->get('session')->getFlashBag()->add($type, $message);
@ -169,7 +169,7 @@ trait ControllerTrait
protected function isGranted($attributes, $subject = null): bool protected function isGranted($attributes, $subject = null): bool
{ {
if (!$this->container->has('security.authorization_checker')) { if (!$this->container->has('security.authorization_checker')) {
throw new \LogicException('The SecurityBundle is not registered in your application.'); throw new \LogicException('The SecurityBundle is not registered in your application. Try running "composer require security"');
} }
return $this->container->get('security.authorization_checker')->isGranted($attributes, $subject); return $this->container->get('security.authorization_checker')->isGranted($attributes, $subject);
@ -206,7 +206,7 @@ trait ControllerTrait
} }
if (!$this->container->has('twig')) { if (!$this->container->has('twig')) {
throw new \LogicException('You can not use the "renderView" method if the Templating Component or the Twig Bundle are not available.'); 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"');
} }
return $this->container->get('twig')->render($view, $parameters); return $this->container->get('twig')->render($view, $parameters);
@ -224,7 +224,7 @@ trait ControllerTrait
} elseif ($this->container->has('twig')) { } elseif ($this->container->has('twig')) {
$content = $this->container->get('twig')->render($view, $parameters); $content = $this->container->get('twig')->render($view, $parameters);
} else { } else {
throw new \LogicException('You can not use the "render" method if the Templating Component or the Twig Bundle are not available.'); 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"');
} }
if (null === $response) { if (null === $response) {
@ -256,7 +256,7 @@ trait ControllerTrait
$twig->display($view, $parameters); $twig->display($view, $parameters);
}; };
} else { } else {
throw new \LogicException('You can not use the "stream" method if the Templating Component or the Twig Bundle are not available.'); 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"');
} }
if (null === $response) { if (null === $response) {
@ -326,7 +326,7 @@ trait ControllerTrait
protected function getDoctrine(): ManagerRegistry protected function getDoctrine(): ManagerRegistry
{ {
if (!$this->container->has('doctrine')) { if (!$this->container->has('doctrine')) {
throw new \LogicException('The DoctrineBundle is not registered in your application.'); throw new \LogicException('The DoctrineBundle is not registered in your application. Try running "composer require doctrine"');
} }
return $this->container->get('doctrine'); return $this->container->get('doctrine');
@ -346,7 +346,7 @@ trait ControllerTrait
protected function getUser() protected function getUser()
{ {
if (!$this->container->has('security.token_storage')) { if (!$this->container->has('security.token_storage')) {
throw new \LogicException('The SecurityBundle is not registered in your application.'); throw new \LogicException('The SecurityBundle is not registered in your application. Try running "composer require security"');
} }
if (null === $token = $this->container->get('security.token_storage')->getToken()) { if (null === $token = $this->container->get('security.token_storage')->getToken()) {
@ -372,7 +372,7 @@ trait ControllerTrait
protected function isCsrfTokenValid(string $id, string $token): bool protected function isCsrfTokenValid(string $id, string $token): bool
{ {
if (!$this->container->has('security.csrf.token_manager')) { if (!$this->container->has('security.csrf.token_manager')) {
throw new \LogicException('CSRF protection is not enabled in your application.'); throw new \LogicException('CSRF protection is not enabled in your application. Enable it with the "csrf_protection" key in "config/packages/framework.yaml"');
} }
return $this->container->get('security.csrf.token_manager')->isTokenValid(new CsrfToken($id, $token)); return $this->container->get('security.csrf.token_manager')->isTokenValid(new CsrfToken($id, $token));