framework-web:symfony:controllers

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
framework-web:symfony:controllers [2018/01/30 02:40] – [Appel de services] jcheronframework-web:symfony:controllers [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 78: Ligne 78:
 La commande suivante liste les services directement injectables : La commande suivante liste les services directement injectables :
  
-<sxh bash>+<sxh bash;gutter:false>
 php bin/console debug:autowiring php bin/console debug:autowiring
 </sxh> </sxh>
Ligne 105: Ligne 105:
 $request = Request::createFromGlobals(); $request = Request::createFromGlobals();
 </sxh> </sxh>
 +
 +==== L'objet Session ====
 +
 +L'utilisation de la session se fait par injection de dépendance d'une instance de **SessionInterface** :
 +
 +<sxh php>
 +use Symfony\Component\HttpFoundation\Session\SessionInterface;
 +
 +public function index(SessionInterface $session){
 +    // store an attribute for reuse during a later user request
 +    $session->set('foo', 'bar');
 +
 +    // get the attribute set by another controller in another request
 +    $foobar = $session->get('foobar');
 +
 +    // use a default value if the attribute doesn't exist
 +    $filters = $session->get('filters', array());
 +}
 +</sxh>
 +
 +==== Flash messages ====
 +
 +Les Flash messages permettent de communiquer des notifications à l'utilisateur. Ils sont stockés en session, et supprimés automatiquement après leur utilisation (get) :
 +
 +Exemple d'utilisation de création de flash message lors de l'envoi d'un formulaire :
 +<sxh php>
 +use Symfony\Component\HttpFoundation\Request;
 +
 +public function update(Request $request)
 +{
 +    // ...
 +
 +    if ($form->isSubmitted() && $form->isValid()) {
 +        // do some sort of processing
 +
 +        $this->addFlash(
 +            'notice',
 +            'Your changes were saved!'
 +        );
 +        // $this->addFlash() is equivalent to $request->getSession()->getFlashBag()->add()
 +
 +        return $this->redirectToRoute(...);
 +    }
 +
 +    return $this->render(...);
 +}
 +</sxh>
 +
 +
 +Affichage des flash messages dans un template :
 +
 +<sxh html>
 +{# templates/base.html.twig #}
 +
 +{# you can read and display just one flash message type... #}
 +{% for message in app.flashes('notice') %}
 +    <div class="flash-notice">
 +        {{ message }}
 +    </div>
 +{% endfor %}
 +
 +{# ...or you can read and display every flash message available #}
 +{% for label, messages in app.flashes %}
 +    {% for message in messages %}
 +        <div class="flash-{{ label }}">
 +            {{ message }}
 +        </div>
 +    {% endfor %}
 +{% endfor %}
 +</sxh>
 +
  • framework-web/symfony/controllers.1517276455.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)