компилируется...

Новые вспомогательные методы контроллёра в Symfony 2.6

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

Эти методы насколько полезны, что разработчики решили включить четыре новых метода помощника, для повышения вашей продуктивности.

redirectToRoute() - возвращает объект перенаправления (redirect), основываясь на имени роута:

<?php

// Symfony 2.6
return $this->redirectToRoute('homepage');

return $this->redirectToRoute('product_show', array('id' => 12), 301);

// Предыдущие версии Symfony
return $this->redirect($this->generateUrl('homepage'));

return $this->redirect($this->generateUrl('product_show', array('id' => 12)), 301);

addFlash() - позволяет добавить флеш сообщение необходимого типа:

<?php

// Symfony 2.6
$this->addFlash('info', 'The item was created successfully.');

// Предыдущие версии Symfony
$this->get('session')->getFlashBag()->add('info', 'The item was created successfully.');

isGranted() - проверяет принадлежит ли роль или другие права, текущему авторизационному токену:

<?php

// Symfony 2.6
if ($this->isGranted('ROLE_ADMIN')) {
    // ...
}

// Предыдущие версии Symfony
if ($this->get('security.context')->isGranted('ROLE_ADMIN')) {
    // ...
}

denyAccessUnlessGranted() - выкидывает исключение если объект (например, ользователь) не имеет необходимых прав доступа:

<?php

// Symfony 2.6
$this->denyAccessUnlessGranted('ROLE_EDIT', $item, 'You cannot edit this item.');

// Предыдущие версии Symfony
if (false === $this->get('security.context')->isGranted('ROLE_EDIT', $item)) {
    throw $this->createAccessDeniedException('You cannot edit this item.');
}
Обсуждение 0
Войти в аккаунт
Чтобы писать комментарии, вам необходимо войти в аккаунт.