Новое в Symfony 2.6: Новые методы быстрого доступа для контроллеров

Symfony поставляется с очень удобным базовым классом Controller, который решает большинство наиболее распространенных для контроллера задач. Когда ваши контроллеры наследуют от класса Symfony\Bundle\FrameworkBundle\Controller\Controller, вы получаете возможность использовать несколько вспомогательных методов , таких как redirect(), getUser() и createNotFoundException().

PS: Раз уж на Хабре появилась ссылка на мой блог, пришлите кто нибудь инвайт что ли, обещаю исправить все ошибки 🙂
Эти хелперы очень полезны, и мы решили включить четыре новых хелпера в класс контроллера Symfony 2.6, чтобы повысить производительность:
1. redirectToRoute (), позволяет выполнять перенаправление по имени роута, вместо того, чтобы генерировать URL:
// 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

Добавить комментарий

Ваш адрес email не будет опубликован.

10 − 6 =