framework-web:symfony:controllers

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.

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class LuckyController extends Controller
{
    // ...
}

$url = $this->generateUrl('app_lucky_number', array('max' => 10));

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');
}

// renders templates/lucky/number.html.twig
return $this->render('lucky/number.html.twig', array('name' => $name));

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

  • framework-web/symfony/controllers.1517276148.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)