Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

Découvrir Symfony3

Créer une action et relier une vue

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Une action permet d'exposer du code sur une vue. Vous allez voir comment créer ces deux parties et les rendre opérationnelles.
05:48

Transcription

On a créé un contrôleur, c'est parfait, mais c'est pas suffisant, regardez, pour faire fonctionner une page. Parce que si vous regardez bien, là ici, votre page, c'est bien, elle fonctionne au travers d'un contrôleur, mais il y a aussi des informations. Et ces informations, elles sont là, regardez ce qui se passe. On crée des actions. Les actions d'un contrôleur permettent plus ou moins de différencier des pages. Alors attention, une action égale une page, c'est pas toujours vrai. Une action, ça peut aussi tout simplement aussi retourner du JSON. C'est pas obligatoirement du templating que ça va retourner. Dans tous les cas, ça doit automatiquement faire un return d'une réponse. Pourquoi, parce qu'une action, ça va intercepter la Request, donc une requête. Et ça va retourner une réponse. Ici on va utiliser, dans l'exemple qu'on a sur le DefaultController, un this render. this, ça correspond à quoi ? this, simplement, ça va correspondre à Controller. Et render, c'est une fonction qui est définie dans Controller, et qui nous permet de faire un rendu, de faire un return d'un templating, d'une génération de template. D'ailleurs, si on veut le vérifier, il suffit simplement de cliquer, sur render, pour aller voir dans le code ce que ça fait. Vous voyez que render est une fonction qui retourne une Response, qui est un objet Symfony, Response. Donc, vous aurez toujours ce fonctionnement là, Request, Response, on est sur du MVC. On reçoit une requête, on renvoit une réponse. Et puis autour, il y a du modèle de la vue du contrôleur. Le contrôleur, ça va s'occuper de récupérer l'action, qui va retourner ensuite la réponse. Donc, ça va forcément, à un moment donné dans le kernel, matcher avec une url, qui elle sera reliée sur une action de contrôleur. C'est pas très compliqué à comprendre, mais c'est vrai qu'il faut un peu de temps et puis un peu de pratique. Alors, render ici, ça prend une vue, on voit que c'est le nom de la vue. Ça prend des paramètres si on a besoin et ça prend un objet de Response, s'il y en a un. Et ensuite, ça va vérifier tout un tas de choses. Et à la fin, quand ce sera OK, ça va retourner une Response, ça va, en fait, simplement générer une Response, donc. Ça c'est pas mal, parce que du coup, concrètement, cette méthode là fera tout le travail, on n'aura pas à recoder tout le fonctionnement, etc. Vous utiliserez le render, quand très facilement vous aurez une vue, à qui vous voulez passer des paramètres. Ça c'est des trucs un peu classiques que l'on fera en Symfony. Donc, le this render ici, si vous regardez bien, effectivement, on va avoir une vue, c'est bien, on va pouvoir donc parler des vues. Et puis, on va avoir surtout ici un paramètre qui est fourni, ce paramètre là, il va être affiché quelque part. On va en parler un petit peu plus tard. On peut effectivement afficher de l'information dans une vue. La vue, c'est default/index.html.twig. Souvenez-vous de ce que je vous ai dit plus tôt. Les vues maintenant, elles se trouvent toujours dans app, Resources, views. Et regardez, Default. Ce serait peut-être pas notre dossier Default ? Si, c'est ça. Si on l'ouvre, effectivement, on retrouve bien index.html.twig. Et index.html.twig, c'est un twig, avec tout un tas de choses évidemment. Mais surtout avec le Your application is now ready. Si on regarde ça, c'est effectivement bien ce qui est écrit ici. C'est la vue qui correpond à, de l'autre côté, notre template. C'est comme ça que ça marche. Donc, MyController, maintenant j'ai envie de créer ma propre action. Regardez comment ça marche une action. C'est une fonction publique qui se termine toujours par Action, c'est obligatoire. On doit faire ça, sinon c'est pas une action. Donc, public function et puis on n'a qu'à faire myAction, ça marche très bien, c'est pas un problème. Et puis, on va ici lui ouvrir des parenthèses. Pourquoi on fait ça ? Parce qu'à l'intérieur, on va pouvoir câbler des choses. Si vous avez déjà fait du Symfony2 avant, vous aviez peut-être l'habitude de faire un this getRequest, par exemple, ou vous pouviez récupérer la Request via une méthode proxy. C'est terminé, on n'a plus le droit de faire ça. Si vous avez envie de travailler avec la Request et pouvoir voir ce qu'elle contient, vous devrez, automatiquement, l'injecter comme ça, en premier paramètre, ou en dernier, peu importe, mais vous devrez typer un paramètre de votre fonction, ni plus ni moins. Celui-ci sera automatiquement enregistré, et sera automatiquement rempli, avec la Request, Symfony va s'en occuper tout seul. Donc, on l'a dit, ici ça doit retourner quelque chose, return toujours. Ça doit retourner quoi, this, on a dit, et on pouvait faire un render. Ça c'est bien, en plus, ça vous complète tout, vous êtes tranquille. La vue, c'est une string. Oui, mais il va falloir créer un template, sinon ça ne va pas marcher. Alors là, on va se faire un nouveau dossier dans les vues, que l'on va appeler myTemplate, par exemple. Et puis, myTemplate ici, on va le copier. On va lui dire que la vue, elle va se trouver dans myTemplate. Et puis pourquoi pas ici, on va pouvoir aussi créer un autre fichier, qui va être my.html.twig, attention à html.twig, twig étant le moteur de rendu de Symfony, celui qu'on va utiliser. Et ici, on va simplement lui spécifier my.html.twig. On n'a pas besoin de référencer quoi que ce soit d'autre, sachant que sur render, ici les paramètres sont optionnels, sinon c'est un array vide, et la Response ici est optionnelle aussi. Elle sera mise à null, si on ne remplit pas. Donc, c'est bon, comme ça, on a créé une action. C'est pas plus compliqué que ça de créer une action. Par contre, évidemment, votre action pour le moment elle ne marche pas. Mais vous avez relié. Dans votre my.html.twig, vous allez pouvoir mettre du HTML. Simplement, par exemple un h1. Tout fonctionne comme ça. Et puis, maintenant, il va falloir le câbler. Il faut une route pour que ça fonctionne, il faut bien que ce soit accessible, depuis une URL, on voit ça maintenant.

Découvrir Symfony3

​Prenez en main Symfony3 pour développer des applications riches. Apprenez à créer des routes et des contrôleurs, créez des formulaires, sauvegardez des données, etc.

3h27 (45 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :7 avr. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !