Créer un gestionnaire de collections avec Symfony3

Créer une entité dans un contrôleur

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Une fois le modèle mis en place, vous allez pouvoir insérer des données en base de données. Cette étape simple vous détaille le fonctionnement du système de persistance.
06:22

Transcription

Maintenant vous avez une Entité, on va pouvoir travailler avec et on va pouvoir l'enregistrer en base de données. On va faire dans le contrôleur, dans un premier temps et si vous pensez qu'il est complexe de gérer une Entité, je vais prouver le contraire. Une Entité, c'est quoi ? C'est un objet, un objet à des setters, bah, on l'a dit setCollection, setTitle, etc. Pour travailler avec un objet, il va suffire uniquement d'estenser cet objet. Donc on va le mettre dans une variable thème, et on va faire un New Item et c'est tout ce qu'on a à faire. En vous ensemble créer un nouvel objet, vous basez sur le modèle de l'Entité Item et vous pouvez travailler avec. Je vous l'ai dit, on a des setters, ces setters, vous pouvez les appeler sur l'objet et je vous invite à le faire ah. N'allez jamais de faire ça, comme ça Item, par exemple Title, on fait pas ça, on a des setters, donc on va utiliser les setters. On va le mettre un titre, Test, puis, ensuite on va lui mettre une description, donc on va faire un setDescription, ici on va lui mettre « juste un test » , comme ça, et puis on va lui mettre aussi allez, un code « setCode » , 1234567890, voilà on a un code, qui est set. En vous en ça vous créez l'objet, vous surchargez les différentes propriétés donc vous écrivez à l’intérieur de l'objet cette propriété. C'est pas mal, bien sûr c'est pas suffisant, bon, si je fais un var_dump, qu'on peut voir, ce qu'il se passe, si je var_dump cette Item, et que je vais en « die » derrière, je vais recharger mon interface, regardez ce qu'il se passe. On crée bien un objet : (AppBundleEntityItem), qui a toutes les propriétés, mais qui pour le moment n'est pas sauvegardé en base de données. Et oui, il a dit vide, ah, il n'y a pas de sauvegarde en base de données. On doit pour le sauvegarder en base de données, travailler avec un Entity Manager, c'est comme ça que ça marche. Donc on va instancier cette Entity Manager, et comment vous allez les chercher, sur this. This correspond à votre contrôleur ici, ce que vous est tendé à cet endroit-là. Le contrôleur qu'on a là, il a plein de propriétés, c'est méthode proxy, qui nous permet d'appeler le container. Container c'est donc, l'ajection des balances dans Symfony, qui dispose de tous les services, alors, heureusement pour nous on va pouvoir faire un getDoctrine, qui permet de récupérer doctrine. Et derrière, un getEntityManager, qui permet de récupérer l'Entity Manager. Comme vous aurez fait ça, l'Entity Manager vous l'aurez dans l'Um et vous pourrez travailler avec. Cet Entity Manager, il s'occupe d'aller insérer un base de données, mais il le fait en deux étapes. La première étape et vous devez toujours faire ça, il faut pérsister vos objets, pérsister ça veut simplement dire en doctrine, constituer la requête, elle n'est pas encore exécutée, elle est constituée. Vous pouvez faire autant persist que vous le souhaitez, avant dans série en base de données. Attention à ça, Ne faites jamais d'insertion base de données dans une boucle préparée avec Persist, et ensuite en sortie de boucle insérer un base de données. Pour insérer un base de données, vous allez flusher, on va utiliser flush sur l'Entity Manager, pour enregistrer un base de données, on fait autant de persist, que l'on souhaite. Le mettre coté, et ensuite on flush une bonne fois pour toute, tout ce qu'il y a à flush. Et si on tester maintenant, on va recharger, Et on va se prendre un petit message d'erreur, pourquoi on se prend un message d'erreur ? Parce que pour le moment, on n'a bien à générer l'Entité, en effet, vous avez une Entité utilisable ici. Mais vous n'avez pas encore crée la base de données, la table qui permet et bien de pousser, cette information dans la base. Donc il va falloir, et bien cette table, la créer. Or comment on va créer la table ? On va retourner sur notre App Console, sur le true Bin Console. Avant c'etait dans App Console, dans Symfony, dès maintenant ça existe dans Bin Console. Alors, dans Bin Console on va avoir une commande, regardez, si on regarde bien un petit peu partout, Manage Ganarete, on n'a pas mal de choses et on a ça : shema:create, ce qui ma create. Ça sert à quoi ? Ça sert à partir des Entités que vous aurez créer, de pousser en base de données, le modèle. On va le faire et regardez ce qu'il va se passer, on va nous dire qu'attention, cette opération doit être exécutée, en production, etc. Et ça a marché, ah, il a crée le shema en base de données, et il a mis à jour. Allons voir réellement si ça était mis à jour, on va se regarder un petit PHP manière mime, et on va voir qu'effectivement maintenant on a bien Item ici, et que Item, sa structure respecte bien, tout ce qu'on a demandé. Donc on a bien ah, les informations de Null à glou pas on a bien ici tous les types qui ont été et bien enregistrés : les longtexts, les varchars avec les lignes qu'on a demandé. Tout est bien respecté, maintenant qu'on a ça, maintenant on a le droit de pousser un base de données. Donc, on va recharger et on va voir autre chose, c'est qu'il y a des contraints que l'on a fixé, qui sont importantes, et ces contraintes seront respectées, donc vous aurez des erreurs, si vous ne respectez pas les contraints. Regardez ici , la contrainte qui est levée, c'est la Collection. Parce qu'on a dit quoi ? On a dit que la Collection, elle ne pouvait pas être nulle, donc ça fonctionne très très bien, on va simplement mettre à jour ici. On va ajouter à notre Item et bien une Collection la Collection pour le moment, qu'est-ce que ça va être ? Ça va être simplement une Collection du Test, et cette fois-ci vous allez avoir le droit de pousser un base de données. Quand vous aurez fait ça, vous verrez qu'ici on a un appel qui est déprécié, alors on va les regardez ce que c'est tout de suite. Et on va faire très attention à ces appels dépréciés, Pourquoi ? Parce que on en a besoin. Donc le getEntityManager, on nous dit que c'est déprécié depuis la 2.1. On doit utiliser getManager, donc ça je vous invite toujours à le faire et à vérifier les dépréciations. Si vous avez un truc déprécié quelque part, vous le corrigez sans plus attendre pour ne jamais en avoir. Maintenant qu'on a fait ça, qu'on a rechargé deux fois, on devrait effectivement en base de données avoir deux objets.

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 !