50:58 hello YoanDev c'est super l'utilisation du service mais cependant ton service est couplé à la command dans ce sens que tu passes SymfonyStyle en paramètres, cette dépendance te rendra la tâche difficile si tu dois réutiliser le service dans un controller par exemple. tous les appels à $io peut rester dans la command car c'est là leur place et personnellement j'ajouterai un callback pour la progression dans la boucle merci pour la vidéo
@yoandevco2 жыл бұрын
Absolument d'accord avec tout ce que tu dis, l'idée était de rester "simple" et la vidéo fait dèja une heure ha ha ha ^^ J'épingle ton commentaire pour les viewers :)
@bernard-ng2 жыл бұрын
@@yoandevco Génial ! merci pour ton travail 🙏
@yoandevco2 жыл бұрын
Dans la vraie vie, j'envoie tous dans des logs et je vais boire un café hé hé hé
@bigpapa594602 жыл бұрын
J'ai adoré le "j'ai pas les doigts en face des touches" 🤣
@yancsBanks Жыл бұрын
Merci beaucoup !!! J'avais galéré à l'adapté dans mon cas car j'avais beaucoup de données. Pour ceux qui auront le même probléme il faut simplement augmenter la taille de la mémoire dans la fonction execute de la commande avec cette ligne :ini_set('memory_limit', '1024M');
@ridamabrouk88792 жыл бұрын
Salut Yoan, merci pour tes vidéos, ça aide en tant que junior dev, j'ai appris symfony durant ma formation ( sans docker ) et j'avais pas accroché mais la tu redonne goût a ce framework. Tu dis je copilot propose ce que tu allais faire et pour moi tu as fait de même en fin de vidéo en disant de dire à nos proches qu'on les aimes. Lol. Merci.
@cyraile2 жыл бұрын
Une super vidéo comme toujours. Merci pour le partage. Tu es quasi synchro avec ce que je doit faire à chaque fois... c'est fou... Import CSV > une de mes prochaines missions... créer des commandes > le besoin est exprimés et il ne me reste plus quà mettre tout ça en place... MERCIIII encore..
@adnlan90 Жыл бұрын
Hello Yoan merci pour ces explications claires et précises. Elles m'ont permis d'utiliser ceci dans un projet de migration e-commerce (WooCommerce vers Symfony 6) En vérité on s'en fout de la vitesse de frappe quand c'est dans le but d'expliquer cela ne sert à rien de sprinter sur les touches ^^ Si jamais un jour tu te lance dans le même système mais en lecture de fichier XML :P
@condepape82682 жыл бұрын
Merci YaonDev pour cette vidéo intéressante et très instructive en tant que dev jr. J'ai 2 questions : 1/ Avant importation en base de données du fichier CSV, comment valider les données par le composant « Validator » au cas où certains champs seraient vides ou n'auraient pas la longueur ou le type de donnée requis ? 2/ Si le fichier contient par exemple plus de 3 erreurs lors de la validation, comment le déplacer dans un sous-dossier « erreur » pour ne pas l'intègrer ? Merci encore pour le partage.
2 жыл бұрын
Mais c'est qui ce Mickaël Andrieu à chaque fois, il est in-croyable xD Super vidéo, pour les personnes intéressées par les villes de France il va être amélioré bientôt 🙂
@yoandevco2 жыл бұрын
Hé hé 😘
@condepape82682 жыл бұрын
Bonjour à tous, merci de m'apporter votre aide pour la suite sur cette vidéo intéressante et très instructive en tant que dev jr. J'ai 2 questions : 1/ Avant importation en base de données du fichier CSV, comment valider les données par le composant « Validator » au cas où certains champs seraient vides ou n'auraient pas la longueur ou le type de donnée requis ? 2/ Si le fichier contient par exemple plus de 3 erreurs lors de la validation, comment le déplacer dans un sous-dossier « erreur » pour ne pas l'intègrer ? Merci encore pour le partage.
@solohan86492 жыл бұрын
Merci pour la vidéo Yoan et la découverte de la lib pour les csv, ce qui aurait été intéressant pour les performances c'est d'aborder la notion de bulk insert ou update avec Doctrine pour éviter de charger tous les objets en mémoire, ça peut être utile sur ce genre de traitement.
@NordTonne2 жыл бұрын
Génial! Plein d'infos: Service, command, style, outil csv et client bdd. Très bien le format, car tes "galères" me montrent (que tu es humain ;) et comment s'en sortir avec la logique symfony. Tu es le meilleur. Est-il possible de diffuser les vidéos du samedi 1 heure plus tôt? On aurait 1h de moins a attendre chaque semaine...
@joelp53432 жыл бұрын
super cette vidéo ! Au-delà de l'import de CSV en ligne de commande je ne connaissais pas Dbeaver, merci pour le partage
@bziletankeu38502 жыл бұрын
Démonstration très digeste.
@mathieuregnier22622 жыл бұрын
Merci Yoyo tjrs au top ! j'adore tes vidéos courtes d'une heure 😂
@sangfroidniloi2 жыл бұрын
Super approche ! J'ai du faire cela il y a quelques semaines, je suis content, ça ressemble beaucoup à ce que tu as fait, mais ta factorisation est beaucoup plus sympa. De plus, je ne voyais pas comment passer les messages dans SymfonyStyle, mais.... il suffisait de le passer en arguments dans le service :D Cool ! Merci pour tes vidéos !
@bigpapa594602 жыл бұрын
Merci pour cette vidéo de qualité ! Cela va mettre super utile 😁 bon courage vivement samedi prochain pour une nouvelle découverte 🙏.
@michellapalus52842 жыл бұрын
Merci Yoan. Très sympa et intéressant
@hfahari2 жыл бұрын
Merci yoyo
@mohamedserrou75332 жыл бұрын
Symfony devient hypper sympa avec vous🙏🏻
@yoandevco2 жыл бұрын
Merci beaucoup !
@YannCharlou2 жыл бұрын
Salut @YoanDev, comment tu aurais géré le SymfonyStyle que tu passes au ImportCitiesService si ce dernier avait dû être utilisé par autre chose qu'une commande console ? (ex: un Handler avec le messenger component) J'aurais été tenté de créer le SymfonyStyle avec un StringInput vide et un BufferedOutput mais je trouve que ça laisse la classe de la commande très dépendante de la logique CLI. Est-ce qu'il y a truc plus malin à faire ?
@stampejj5 ай бұрын
Un grand merci, il y aurait-il beaucoup de différence avec le fichier json ?
@BrunoLetertre Жыл бұрын
Bonjour, Bravo pour cette vidéo. Pouvez vous mettre le git en ligne? Merci.
@gamesngeeks2 жыл бұрын
Merci pour la vidéo. Par contre dans l'exemple, vu que l'on flush qu'une seule fois, le test de savoir si la ville existe déjà ne fonctionne pas pour le primo chargement. Et donc on peut se retrouver avec des doublons. Et enfin j'ai réussi pour dbweaver avec docker, merci
@emilie19772 жыл бұрын
Ciao, moi j'ai fais une chose semblable au contraire, une command qui me fait un backup de la base de données en csv :)
@olivierlejeune19502 жыл бұрын
Super vidéo comme d’habitude. Il y a tant à dire sur les commandes qui sont un super outil pour les traitements de masse asynchrones. Pour les CSV, il y a aussi la bibliothèque Serializer de symfony avec le normalizer csv, mais la csv league que tu nous as fait découvrir a piqué mon intérêt et je vais l’essayer. Merci pour la découverte du makefile, j’ai les yeux qui brillent, je suppose que c’est facilement lançable en Cron puisque c’est du bash. Par défaut avec php8, il ne faudrait pas rajouter le declare strict type au début de chaque fichier? Que penses tu de la nouvelle norme qui arrive qui dit qu’il ne faut plus créer de Services, mais les découper en pkus spécifiques via des Handler, Helper, Trait, Manager, etc.. D’ailleurs la méthode de lecture avec des paramètres en plus, serait parfait dans un trait pour être utilisable par tous les services qui pourraient en avoir besoin. Le symfonystyle est sympa et la progressBar aussi, mais il vaut mieux privilégier monolog (tout un sujet d’ailleurs ^^) pour garder des traces pour le client. Avec messenger, penses tu qu’on puisse gérer les lancements de Command via l’appli ? Avec un héritage sur la classe command, on peut centraliser les batchs et gérer des historiques en base et des file.lock pour stopper les déploiements CI-CD si un batch tourne. J’adore les command, il y a beaucoup de choses pour s’amuser. Encore merci
@godwin.k2 жыл бұрын
C’est ce que je voulais dire aussi que le composant Serializer intègre déjà un encoder pour le CSV .
@ziat19882 жыл бұрын
Hello Yoan. Quand ce sera un très large CSV, genre de environ 1gb. Tu as des idées pour ça?
@ptitgris662 жыл бұрын
1 an et demi que j'utilise csv league mais le bundle a ses limites (et on fait de l'import / export).
@yoandevco2 жыл бұрын
Comme tout, il faut choisir le bon outil pour la bonne mission, tu as raison
@sebastiensansbelle2 жыл бұрын
Effectivement, on sentait que tu étais un peu fatigué... 😴 Peut-être que Copilot n'est pas super judicieux pour faire des tutos car tout ce code qui apparaît et disparaît en un éclair, ça déroute un peu (mon avis). Sinon très bien...
@yoandevco2 жыл бұрын
J'hésite pour Copilot car j'aime partager mon "expérience de développement* (au sens expérience utilisateur de développeur). Mais tu as raison, ça brouille probablement la pédagogie quelques fois. Je vais essayer de trouver un équilibre 👌