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

Personnaliser l'affichage et gérer les templates

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Les affichages des champs de formulaires sont déjà définis dans Symfony. Libre à vous de les écraser et de les redéfinir. Apprenez à créer vos propres affichages de formulaires.
04:54

Transcription

C'est intéressant ce qu'on est en train de faire mais le templating comme ça selon moi, ce n'est pas suffisant. On est sur Symfony, on peut avoir des choses génériques. Vous vous doutez bien que cette partie-là, ici, bon, c'est une possibilité évidemment de le faire à la main, mais si vous devez le faire partout dans tous vos formulaires, dans tous vos templates, il y a un moment où vous allez perdre un temps phénoménal. Sachez que si votre application respecte toujours le même templating, etcetera et ça va justement être le cas dans les applications, vous avez possibilité de faire les choses de façon globale. Vous vous doutez bien aussi que form_widget qui se trouve ici, c'est une fonction twig qui va charger un petit template, qu'il va l'appliquer sur le champ, par exemple le champ submit, et qui va faire le travail. Eh bien, vous avez raison. Il y a un fichier dans lequel vous allez trouver absolument tout le templating de base de Symfony. Ce fichier, vous allez pouvoir le chercher, alors, on peut faire une recherche directement ici en cherchant les fichiers, dans NavigateFile, et on va pouvoir rechercher avec le nom du fichier, c'est form_div, vous n'allez pas en trouver beaucoup, il n'y en a que deux. En plus, le premier, c'est debug. Donc nous, ce qui nous intéresse, c'est form_div_layout.html.twig. Vous allez voir que celui-ci est localisé dans Symfony/Bridge/Twig/Resources/views/Form C'est très loin ! Si vous l'ouvrez, vous allez avoir tout le templating possible. Et ce templating, vous allez pouvoir l'écraser à votre convenance. Alors, sachez que ce qui est généré de base quand on demande un widget, c'est cette partie-là : le form_row. Et en fait, on peut l'utiliser avec form_row plutôt que form_widget ce qui donnera la possibilité d'appliquer directement le template. Vous allez le récupérer cette partie-là, ici. Et on va créer notre propre fichier pour faire un rendu. Dans views, on va se créer un nouveau dossier form. Et à l'intérieur de form, on va se créer pareil un nouveau fichier. Et celui-là, on va l'appeler fields.html.twig. Et à l'intérieur de ça, vous pourrez mettre ce que vous voulez. Et nous, en l'occurrence ici, on va simplement coller notre petit bout de template et on va le configurer en mettant ici, pourquoi pas, une petite class, la class test. En mettant cette class test ici, vous allez pouvoir configurer proprement le template. Alors, ce n'est pas la seule chose à faire évidemment, quand vous configurer un template comme ça personnalisé, vous allez donc surcharger le form_div_layout, ce qui fait que dans la config, il va falloir ici venir ajouter une nouvelle valeur qui va être form_themes: comme ça. Et vous allez lui donner la liste des différentes vues que vous aurez développées, nous, en l'occurrence, pour le moment, c'est fields.html.twig qu'on a là, dans le dossier form, bien sûr, toujours à la racine de views dans Resources. Quand vous aurez fait ça, vous pensez à enregistrer évidemment. Et puis, vous allez simplement ici dans notre template à nous, remplacer cette partie-là. Et on va faire un rendu au travers de l'utilitaire form_row. Et qu'est-ce qu'on va lui donner ? Bah, la même chose : form.name. Et on va juste aller recharger la page. Et en rechargeant la page, vous verrez qu'effectivement, votre template sera appliqué. Donc ici, on a bien une div class test. Alors le reste ne change pas évidemment, il viendra récupérer le templating existant, celui qui se trouve dans form_div_layout pour tout le reste, ce que vous n'aurez pas configuré. Mais ce que vous aurez configuré ici aura plus d'importance que le layout de base. Donc vous pouvez maintenant travailler vos champs de formulaire de façon globale partout. Et ici, on pourrait même travailler pour avoir tout ce qu'on veut directement. C'est-à-dire que le form_widget qu'on a là, si j'ai envie d'appliquer une class particulière à tous mes champs, je vais pouvoir le faire avec attr. Vous vous souvenez, on va prendre attr comme ça, on va lui mettre ici un autre objet, on va ouvrir, hop, comme ça, et on va lui dire ok pour tous les champs, maintenant, tu vas m'appliquer une class form-control et puis point barre, quand je vais recharger de l'autre côté, je vais avoir une class effectivement form-control, pour tous mes input. Et ça, ça me permet d'aller très vite, ça me permet d'éviter de retaper à chaque fois pour tous mes formulaires ce que je veux, Et ça vous permet de configurer de façon globale des formulaires avec un template qui va s'appliquer absolument partout. Voilà comment on fait, ce n'est pas compliqué. N'oubliez simplement pas qu'il faudra vous baser sur le form_div_layout qui, lui, va renseigner tous les types de champs existants, où il suffira de faire des petits copier-coller. Et puis, vous remplacez ce qui vous intéresse. Ce n'est pas plus compliqué que ça et puis, bien sûr, si vous créez d'autres form fields.html.twig, en tout cas d'autres fichiers dans form ici, pensez bien à aller les déclarer dans la config, c'est important pour que ce soit chargé. Attention, ils sont chargés dans l'ordre de définition, ce qui veut dire que si vous avez surchargé encore à l'intérieur d'un autre fichier, le même block qu'un fichier déjà existant, il sera plus important tout simplement. Donc ne vous trompez pas mais voici la manière de faire. Comment on va surcharger de façon globale et appliquer du template partout.

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 !