Symfony поставляется с очень удобным базовым классом Controller, который решает большинство наиболее распространенных для контроллера задач. Когда ваши контроллеры наследуют от класса Symfony\Bundle\FrameworkBundle\Controller\Controller, вы получаете возможность использовать несколько вспомогательных методов , таких как redirect(), getUser() и createNotFoundException().
// Symfony 2.6 return $this->redirectToRoute('homepage'); return $this->redirectToRoute('product_show', ['id' => 12], 301); // Previous Symfony versions return $this->redirect($this->generateUrl('homepage')); return $this->redirect($this->generateUrl('product_show', ['id' => 12]), 301);
2 addFlash (), позволяет создавать всплывающее сообщение требуемого типа, проверяющее доступен ли сеанс пользователя:
// 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 (), проверяет доступен ли конкретный атрибут из текущего сессии:
// Symfony 2.6 if ($this->isGranted('ROLE_ADMIN')) { // ... } // Previous Symfony versions if ($this->get('security.context')->isGranted('ROLE_ADMIN')) { // ... }
4 denyAccessUnlessGranted (), генерирует исключение, если атрибуты не доступны в текущей сессии:
/ Symfony 2.6 $this->denyAccessUnlessGranted('ROLE_EDIT', $item, 'You cannot edit this item.'); // Previous Symfony versions if (false === $this->get('security.context')->isGranted('ROLE_EDIT', $item)) { throw $this->createAccessDeniedException('You cannot edit this item.'); }
Источник: http://symfony.com/blog/new-in-symfony-2-6-new-shortcut-methods-for-controllers?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+symfony%2Fblog+%28Symfony+Blog%29