Ceci est une ancienne révision du document !
Controllers
Bien qu'un contrôleur puisse être une classe normale, il est conseillé d'étendre la classe Controller ou AbstractController, pour bénéficier des méthodes utilitaires définies dans ces classes.
Classe de base
namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; class LuckyController extends Controller { // ... }
Opérations courantes
Génération d'urls
$url = $this->generateUrl('app_lucky_number', array('max' => 10));
Redirections
use Symfony\Component\HttpFoundation\RedirectResponse; // ... public function index() { // redirect to the "homepage" route return $this->redirectToRoute('homepage'); // redirectToRoute is a shortcut for: // return new RedirectResponse($this->generateUrl('homepage')); // do a permanent - 301 redirect return $this->redirectToRoute('homepage', array(), 301); // redirect to a route with parameters return $this->redirectToRoute('app_lucky_number', array('max' => 10)); // redirect externally return $this->redirect('http://symfony.com/doc'); }
Appel d'un template
// renders templates/lucky/number.html.twig return $this->render('lucky/number.html.twig', array('name' => $name));
Appel de services
L'utilisation d'un service peut se faire par injection de dépendances :
use Psr\Log\LoggerInterface // ... /** * @Route("/lucky/number/{max}") */ public function number($max, LoggerInterface $logger) { $logger->info('We are logging!'); // ... }
La commande suivante liste les services directement injectables :
php bin/console debug:autowiring