Quantcast
Channel: Symfony Blog
Viewing all articles
Browse latest Browse all 3057

New in Symfony 2.6: New shortcut methods for controllers

$
0
0
Thomas RoyerGrégoire Pineau

Contributed by
Thomas Royer in #11593. andGrégoire Pineau in #11602.

Symfony comes with a very handy base Controller class that assists with some of the most common controller tasks. When your controllers extend from theSymfony\Bundle\FrameworkBundle\Controller\Controller class, you can take advantage of several helper methods, such as redirect(), getUser() andcreateNotFoundException().

These helpers are so useful, that we've decided to include five new controller helpers in Symfony 2.6 to boost your productivity:

1.redirectToRoute(), allows to return a redirection based on the name of the route instead of having to generate first the URL:

1
2
3
4
5
6
7
8
9
// Symfony 2.6return$this->redirectToRoute('homepage');return$this->redirectToRoute('product_show',array('id'=>12),301);// Previous Symfony versionsreturn$this->redirect($this->generateUrl('homepage'));return$this->redirect($this->generateUrl('product_show',array('id'=>12)),301);

2.addFlash(), allows to create a flash message of the given type, checking first if the user session is available:

1
2
3
4
5
// Symfony 2.6$this->addFlash('info','The item was created successfully.');// Previous Symfony versions$this->get('session')->getFlashBag()->add('info','The item was created successfully.');

3.isGranted(), checks if the given attributes are granted against the current authentication token and the optionally supplied object:

1
2
3
4
5
6
7
8
9
// Symfony 2.6if($this->isGranted('ROLE_ADMIN')){// ...}// Previous Symfony versionsif($this->get('security.context')->isGranted('ROLE_ADMIN')){// ...}

4.denyAccessUnlessGranted(), throws an exception unless the attributes are granted against the current authentication token and the optionally supplied object:

1
2
3
4
5
6
7
// Symfony 2.6$this->denyAccessUnlessGranted('ROLE_EDIT',$item,'You cannot edit this item.');// Previous Symfony versionsif(false===$this->get('security.context')->isGranted('ROLE_EDIT',$item)){throw$this->createAccessDeniedException('You cannot edit this item.');}

5.isCsrfTokenValid(), checks the validity of the given CSRF token:

1
2
3
4
5
6
7
// Symfony 2.6$this->isCsrfTokenValid('token_id','TOKEN');// Previous Symfony versionsuseSymfony\Component\Security\Csrf\CsrfToken;$this->get('security.csrf.token_manager')->isTokenValid(newCsrfToken('token_id','TOKEN'))

Be trained by Symfony experts - 2014-10-06 Cologne - 2014-10-06 Cologne - 2014-10-08 Cologne

Viewing all articles
Browse latest Browse all 3057

Trending Articles