Créer un gestionnaire de collections avec Symfony3

Comprendre le rôle des classes Repository

Testez gratuitement nos 1324 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vos requêtes ne s'arrêteront sûrement pas à une simple récupération. Si vous devez écrire une requête, c'est dans la classe Repository qu'il faudra le faire. Découvrez son rôle et son utilisation pour garder un code source propre.
06:38

Transcription

Vous avez vu comment supprimer, vous avez vu comment afficher, comment modifier ? Ah, oui, vous voulez savoir ? Très simple. Vous savez récupérer l'Entité, vous savez créer un formulaire, vous savez mettre à jour un Item, bah voilà, c'est pas plus compliqué, que ça, vous créez une action, vous récupérez l'Entité que vous souhaitez modifier, et puis vous l'injectez directement ici et puis bah, vous allez juste modifier ces informations. C'est aussi simple que ça, vous inquiétez pas, il n'y a rien le plus simple. On verra un petit peu plus tard, parce qu'on parlera de Doctrine, et des formulaires. Vous inquiétez pas, tout est très très rapide, très très simple. Mais j'ai envie de vous parler d'Item Repository, de Repository en général. Qu'est-ce que c'est qu'un Repository ? Un Repository, c'est l'emplacement dans lequel vous allez pouvoir créer vos propres requêtes, vous allez utiliser du DQL en langage et bien de requétage, donc c'est doctrinequerylanguagedql, et pour ça vous allez passer par un Query Bullder, alors, nous qu'à d'école, on va vouloir récupérer toutes les collections pour les afficher comme ça les unes derrière les autres. Mais j'ai pas envie toutes les récupérer en libérant les objets, bah non parce que quand je tire mes objets, rien de base de données-là. Bah il va plusieurs fois la même connection, test, test, test. Moi je veux une seule fois test. Avec My SQL on peut grouper, donc on va les grouper par collection, et on va lui dire de ne shoper les Items, qu'on paie par collection, alors comme ça quand on affichera, on affichera qu'une seule fois la collection, on comprend. Ça pourrait nous servir plus tard à filtrer par collection, pourquoi pas. L'idée aussi, c'est surtout de vous montrer comment faire. Donc, on va se créer dans Repository un public fonction : getCollections, comme ça, et puis à l’intérieur on va commencer par instenser ce fameux QueryBuilder. Vous allez passer par this, qui correspond aux Entités Repository ici, et on va lui demander de faire un createQueryBuilder. Alors attention, quand vous créez un QueryBuilder, il faut lui donner une lettre, nous on va mettre I, parce qu'on est en train de travailler sur les Items, I représente votre Item en base de données et donc votre schéma, ça vous permettra de créer facilement ensuite une requête. Bon, bah on y va alors, QueryBuilder, flèche, et là on va lui dire quoi ? Bah on va lui dire d'abord de faire un sélect : « je ne veux sélectionner que le champs collection, i.collection ». Or vous verrez dans un flèshe que vous avez toutes les possibilités existantes dans My SQL, et même plus des fois pour venir créer facilement des requêtes : les where, les ends tout ce qu'on veut, on a vraiment tout. Donc nous on va simplement ici lui demander de grouper. GroupBy et on va lui dire i.collection, comme ça il va grouper par collection, il récupérera qu'une seule fois l'Item à chaque fois. Ça c'est suffisant, presque, il faut quand même retourner quelque chose ah, si non ça marchera pas, donc on va retourner Query Builder, ici getQuery, donc on lui demande de construire, la Query et getResolte pour récupérer les résultats. Vous remarquerez dans getResult vous avez la possibilité d'injecter ici un paramètre, qui vous permettra de choisir le mode de Rotation, de l'objet de l'Oreille, on a le plan. Donc, nous on va laisser comme ça un objet, c'est très bien, ça c'est pour nous. et maintenant alors, comment je l'utilise ça du coup ? Comment j'utilise mon getCollections ? Bah, il est attaché à votre Repository, ce qui veut dire que quand vous faites un appel en Repository, ce que vous avez déjà fait ici. Bien sûr vous bénéficiez des méthodes, qu'on appelle les méthodes magiques, ils sont déjà disponibles sans Doctrine. Mais c'est pas tout, vous bénéficiez aussi de toutes les méthodes que vous auriez défini, vous même. Alors attention vous les aurez pas forcement, de tout comme pletion. Mais ça va marcher, on va ici lui dire que les collections, ça va être égale à Repository, et ici getCollections, qui est notre méthode à nous. Bien sur on n'oubliera pas de les passer ici à l’intérieur dur, collections va être égale du coup à l'objet collections, et normalement on devra en avoir que trois. Si vous voulez faire des tests avant de passer et bien un affichage dans twig, je vous conseille le très bon Item, qui permet d'afficher directement dans la console donc la barbe Debuggeur en bas, dans votre Symfony, des résultats. Regardez ici quand vous faites un dom, ça nous bloque pas et bien en exécution de la page, mais vous avez quand même les informations qui apparaissent et effectivement en n'à que trois, on va avoir FFF, sqdqs et test, c'est génial, ça marche très très bien. Bon, si ça fonctionne maintenant, on va donc l'afficher, on va retourner dans notre liste ici et ce qu'on va faire c'est simplement un petit For, comme on a déjà fait. On va utiliser Collection, comme ça : in Collections, et vous n'oublierez pas de mettre le For au début, et on va fermer, comme on a déjà fait avec un Endfor. A l’intérieur ici on aura juste à utiliser Collection.collection, attention ah, si vous regardez bien le Dump, qu'on a là on voit bien qu'il y a qu'une seule propriété sur les objets c'est Collection, parce que c'est ce qu'on a demandé au niveau de la Sélection, donc là bien sur vous auriez des Items, ah Alors, si vous voulez être plus claire, on peut dire : Item in Collections et comme ça. Vous êtes bien, sur des Items qui proviennent de la collection, en fait Collections c'est ce qu'on a passé de Build Contrôleur à la vue, ah, ici, et vous utilisez la propriété Collection pour l'affiche. Si vous voulez que ce soit bien propre, vous pouvez commencer par mettre des a, comme ça au moins ça sera des liens et si vous voulez que l'affichage soit assez sympa, vous pouvez aussi utiliser du Build Strap, puisqu'on est en Buld Strap actuellement. Qu'est-ce qu'on pourrez utiliser, bah on pourrez utiliser une petite classe sympa, qui va nous afficher des petits boutons. Alors il y a plein qui existe, mais Label, c'est pas mal, donc Label et Label Info, nous permettrons d'avoir de petits boutons bleus, et on pourrait mettre ici Filters by. Filters by et puis on aura à chaque fois les petits Label, On essaye, ça donne ça, c'est pas mal ah, regardez hop, ici on a cré une requête, on voit qu'actuellement on a deux requetes en base de données, que ça nous a pris 2,92 ms à exécuter, et si vous y allez vous verrez qu'effectivement ici on a bien le coup By qui apparaît, etc. Donc c'est vraiment pas mal, c'est simple à utiliser évidemment, on voit ensemble la base, ça c'est un atelier pour découvrir un petit peu les outils. Il faudra pousser un peu plus, parce que vous verrez qu'en DQL on n'a des possibilités incroyables, notamment je vous conseille de faire un tour du coté de l'Expression Builder, que vous pouvez obtenir en l'appelant Query Builder et ici vous avez un outil Expr, et cet outil Expr il y a beaucoup, beaucoup de chose à voir dessus, il y a beaucoup de documentation que vous pouvez regarder. Il permet de faire énormément de choses, c'est très très intéressant.

Créer un gestionnaire de collections avec Symfony3

Développez une application de gestion de ressources avec Symfony. Prenez en main le DQL (Doctrine Query Language) ainsi que les formulaires, la sécurité, les tests, etc.

2h12 (25 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :19 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 !