Tutoriel parfait aussi bien dans son contenu que sa forme. Le workflow et tes explications limpides méritent plus qu'un pouce bleu ! Le refactoring en fin de vidéo est juste magique ! Merci Lior 🙏
Oulàà, la certif Symfony elle rigole pas du tout ! Il semblerait qu'elle est vraiment HARDCORE. Un jour je m'y attaquerai, en attendant tu devrais regarder cette vidéo ou l'intervenant parle de son expérience : th-cam.com/video/DT_hJSgDrwE/w-d-xo.html
Merci pour votre dévouement dans l'enseignement de jeunes développeurs en nous permettant d'apprendre une matière simple et pratique (Pragmatique) ,je suis nouveau dans symfony et c'est grace a vos tuto en ligne que je me perfectionne tout les jours..). depuis Kinshasa-RDCONGO
Merci beaucoup pour ce tuto ! J'ai appris à utiliser toute seule Symfony il y a quelques années en commençant par le 2.8 puis en basculant sur la 3. Par manque de temps, je n'ai pas eu l'occasion de voir Symfony 4 et encore moins la v5 mais c'est très intéressant de connaître les bonnes pratiques. Je ne savais pas qu'il fallait mettre le maximum de process dans des services, je mets tout dans les Controller perso. 😅 Je veillerai du coup à mettre à jour mon code pour les alléger. Tu expliques très bien. Si à l'époque j'avais pensé à suivre des tutos sur YT, ça m'aurait épargné des heures de galère à essayer de comprendre ce framework...
Bonjour Lior, Merci pour tes superbes vidéos. J'ai suivi le tuto créer une session et un panier et avec le CartService. Impeccable ! Ensuite j'ai crée une categorie reliée au produit , en suivant un autre de tes tutos (Comprendre les entités et leur relation) Parfait les produits avec leur catégories s'affichent parfaitement. Par contre mon CartService ne fonctionne plus.Finalement J'ai refait le code avec Symfony version 5.4 et ça fonctionne. Je ne sais pas quel est le problème avec symfony 6 pour ce même code. En tout cas, j'ai trouvé une solution avec symfony 5.4 et ça me va pour l'instant!! super tes vidéos Lior! A bientôt
Bonjour, je passe un exam en développement web il me manquer le panier sur Symfony. Grace à toi tous marche ! merci infiniment ! bonne continuation à toi ! t'es un crack
Hello Lior ! Une petite idée de série de vidéos Symfony qui pourraient être très utiles ! Pour chaque vidéo, tu nous présentes un bundle très utile, et tu pousses ses fonctionnalités à fond dans un exemple ! On peut imaginer : - KnpPaginatorBundle : pagination (avec intégration d'un formulaire pour filtrer le tableau renvoyé) - Fullcalendar : calendrier/agenda (en poussant à fond avec la possibilité de pouvoir ajouter, modifier, supprimer des éléments et en personnalisant des paramètres) - FOSUserBunde : Gestion user - VichUploaderBundle : Upload/Téléchargement de fichiers Et j'en passe, ça pourrait vraiment être sympa, surtout avec ta propre manière d'expliquer ;) Ou un autre concept qui serait dans ton temps libre, de répondre à une question d'un abonné sur un truc qu'il a du mal à faire, et tu en ferais une vidéo pour montrer comment faire ce qu'il souhaite, comme ça, ça pourrait aider les autres qui auraient la même difficulté. Sinon bonne vidéo comme d'hab ;)
Vraiment bravo pour cette vidéo ; images et son de qualité quand à l'explication du code et la factorisation à la fin, c'est parfait ! Tu gagnes un nouvel abonné
Tu es vraiment excellent ! Dieu bénisse. J'attends toujours une petite video/formation sur les test unitaires et fonctionnels sinon bonne continuation..... Plein de force
Mais arrêtez de me demander ça haha, je SUIS NUL en tests unitaires, j'apprend tous les jours dessus mais je suis pas encore bon pour former dessus. Vas voir des vidéos chez Grafikart il gère ça super bien !
Lior tout d'abord merci, étant marseillais et en formation à l'AFPA Marseille saint Jérôme, j'ai appris plus avec toi que en 8 mois à l'AFPA donc un grand MERCI
vous êtes vraiment le meilleur formateur j'ai appris bcp sur symfony à travers vos tutoriels merci infiniment lior .je voulais savoir si vous avez faient des tutos sur angular
Alors 1 millards de fois merci pour cette vidéo plus que claire et très efficace. Pour ma part je suis sous Symfony 6 et j'ai rencontré quelques difficultés au moment d'exporter "la réflexion" du controller au service. L'autowiring de SessionInterface ne fonctionne pas... Du coup j'ai opté, en m'appuyant sur la doc de Symfo (V6.0), pour l'objet RequestStack (Symfony\Component\HttpFoundation\RequestStack), est-ce la bonne façon de faire ?
Bonjour, excellent travail. Svp je suis arrivé à 7:33 mais ma table product esr vide. Svp avez vous une vidéo ou vous avez rempli votre table product par des images? Merci
Tutoriel très sympathique que j'ai eu plaisir à suivre et qui me sera très utile pour un projet professionnel (malheureusement dans l'éducation nationale en tant qu'enseignant, ça ne paye pas beaucoup et donc j'apprécie ce genre de ressources mis à disposition gratuitement). Merci beaucoup Lior ! Travaillant sur Mac (macOS Catalina), j'ai constaté un bug désagréable sur Firefox, Chrome ou Safari (je n'ai pas essayé Edge...) : la session est effacée entre deux requêtes... Sur Internet, j'ai trouvé peu de solutions (une consistait à ajouter un fichier favicon.ico dans le dossier public). Finalement j'ai résolu ce problème en utilisant la commande symfony serve décrite dans la documentation d'installation d'un site Symfony plutôt que php bin/console server:run Par ailleurs, le site lorempixel.com utilisé par Faker semble être down depuis un certain temps. Donc j'ai dû réécrire la génération d'url image dans les fixtures. J'ai utilisé le site picsum.photos et la génération de nombres aléatoires par Faker (Peut-être pas la solution la plus élégante...)
Excellent merci. ça parait tellement simple quand on te regarde, un peu comme quand tu vois de grands guitaristes jouer ça à l'air si facile mais une fois l'instrument dans les mains c'est autre chose ^^ Dans la console j'ai un warning " Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead" mais j'ai beau faire des rchercher je ne trouve pas ce array_key_exists, comment fixer ce warning ?
Tu dois te tromper sur ce que tu passes à array_key_exists(), là il dit que tu lui passes un objet, alors que tu devrais lui passer un tableau, l'erreur vient de là !
Bonjour, J'ai une question concernant la persistance du panier. Dans votre vidéo vous le sauvegarder dans la session on est bien d'accord. Donc si le client ferme le navigateur et revient sur le site, son panier sera vidé. Ma question est la suivante : Comment peut-on faire pour que le panier persiste lors de la déconnexion de l'utilisateur, c-à-d lorsque le client se reconnectera sur le site, il verra son panier dans le même état que lorsqu'il a fermé le navigateur. Plusieurs solutions, dont le stockage en bdd, cookies, .. Quelle est la meilleure méthode selon vous ? Merci d'avance
Pour moi si tu veux une solution vraiment pérenne (comme Amazon), ce sera la base de données, car même les cookies peuvent être "clear" côté client (si tu clear le cache par exemple)
Ma foi pourquoi pas, la doc est relativement simple tout de même :x et y a beaucoup de gens qui ont fait des tutos dessus mais si vous pensez que c'est bien ça pourrait venir
@@LiorCHAMLA Merci pour ta réponse ! Ce serait trop bien ! La doc de stripe n'est pas ouf pour la double vérification (3d secure)! Comme c'est un sujet ou la sécurité est particulièrement importante, un tuto serait rassurant 🙂 Encore merci pour les tutos a+
@@RaphManiania ça serait trop poussé le 3d secure je pense pour une vidéo tuto, c'est typique le moment où je dirai "pour aller plus loin allez voir la doc"
@@LiorCHAMLA ah ok ! Je comprends ! Mais c'est dommage, parce que la doc sur ce point est vraiment pas ouf et comme 3D secure c'est quasi obligatoire maintenant ça pourrait aider pas mal de gens je pense 😉 Ou un tuto sur payum le bundle de paiement ? Peut être qu'il serait plus simple a traiter et plus sécurisé ? Enfin bon comme tu le sens, c'est déjà super tous tes tuto gratuits 👍
Bonsoir Lior, j'ai un souci à la 13:06 min, voila le résulta CartController.php on line 36: [ ], je constate que l'array est vide. Merci d'avance pour ton aide. Bonne soirée.
Bonjour cher Monsieur! Excusez moi je serai un peu hors sujet mais je réalise actuellement un site de vente en ligne, qui comprend un back office permettant de gèrer les commandes passées par les clients. Mon problème se situe au niveau de l'enregistrement du contenu d'un panier dans la base de données. J'ai une table "commande" qui contient un champ id_produit et un champ id_cammande, et je ne vois pas comment faire pour enregistrer plusieurs id_produit (si le panier contient plusieurs produits avec des id différents) sous un même id_commande. A l'heure actuelle, lorsqu'il y a plusieurs produits, seul l'id_produit du dernier produit (par exemple, si il y a 4 produits, seul l'id de produit4 est pris en compte) est enregistré dans la table commande. Merci d'avance pour votre aide.
28:46 Salut à toi Lior, je suis débutant en prog et tes explications sont super. Pourquoi, dans la fonction remove() du cart utilises-tu if(!empty($panier[$id)) ? Pour l'exercice, j'ai écrit if($panier[$id]) et ça semble marcher aussi bien et c'est plus simple. Y a-t-il une raison particulière pour l'utilisation de la fonction empty()? Merci d'avance !
if($panier[$id]) si ça n'existe pas te donnera une Notice (un message d'erreur très peu grave, mais un message d'erreur quand même) même si tu ne la vois pas à l'écran, la Notice existe (elle dit que $panier[$id] n'existe pas). Avec le empty() tu évites la notice :)
Bonjour, merci pour toutes ces vidéos, ça m'aide beaucoup. Par contre, je suis sur un projet en symfony 6.2 et La SessionInterface n'est plus dispo pour la gestion du panier. J'avoue que je galère un peu. message d'erreur dit que le service n'est pas déclaré. Dois-je le declarer en créant un fichier SessionInterface.php ou une autre solution ? Merci pour votre retour. Laurent
En Symfony 6, on ne peut plus demander la session avec SessionInterface dans le constructeur. Tu dois demander la RequestStack, et dans cette RequestStack tu pourras retrouver la currentRequest, qui elle même possède la session :) Vois ici symfony.com/doc/current/session.html#basic-usage
Super vidéo Lior. Merci encore une fois. J'ai juste une petite question par rapport au panier, je veux l'améliorer et mettre le '-' et le '+' pour la quantité directement sur le panier, est-ce que pour changer le total de la commande qui se trouve en dessous, j'aurais besoin des appels ajax ou bien autre chose ?
Appels AJAX ou juste des liens vers des actions genre : - public function decrement($id) qui permettrait de faire baisser la quantité d'un produit donné - public function increment($id) qui permettrait de faire monter la quantité d'un produit donné :)
Bonjour Lior, merci pour ces vidéos passionnantes ! j'ai cependant une question dans le cart service, il me met : Call to a member function getPrice() on null, alors que j'ai bien les données dans data.db, merci pour votre réponse. JFA
j' ai eu la même chose. je change de navigateur et ça fonctionne. ou bien en mode privé(une histoire de cache?..) il sufffit de supprimer l'historique du navigateur
@Lior, merci pour cette vidéo, qui en passant fonctionne parfaitement sous SF5.1.2 :-) Petite question, si on souhaite ajouter les flashbag, pouvons nous les ajouter directement dans le CartService ?
En fait, c'est tout simple, $this->session->getFlashBag()->add('success','Article supprimé avec succès'); que j'ai ajouté dans CartService dans la fonction en question :d et ensuite on l'ajoute dans la vue bien sur ;)
Merci pour cette belle présentation des sessions sur Symfony. Sinon qu'elle ColorSchema utilisez vous dans Visual Code ? Est ce qu'il est disponible sur Sublime Texte ?
C'est un détail mais je n'aurais pas injecté la session dans le service pour qu'il soit "sans état" (je l'aurais gardé dans le controller en passant le panier dans le service) car on peut imaginer d'autres "contextes" que la session qui sollicitent le même service (ex : api). Qu'en penses-tu ? Sinon, tu fais vraiment preuve d'une très bonne pédagogie. Bravo Lior et merci !
Bah je pense que si effectivement tu as l'idée que ton panier va être utile dans plusieurs contexte, tu pourrais créer une interface CartStorageInterface et deux classes qui l'implémentent : une avec la session, l'autre avec un autre moyen de stockage (REDIS ?) et en fonction du contexte tu passes à ton service l'objet adapté ? Mais je me demande si ce n'est pas aller un peu loin ^^
Bonjour Lior un grand merci pour ta chaine. Je suis bloqué au moment d'utiliser le add de CartService. j'obtiens ce message : Cannot resolve argument $cartService of "App\Controller\CartController::add()": Cannot autowire service "App\Service\Cart\CartService": argument "$session" of method "__construct()" references interface "Symfony\Component\HttpFoundation\Session\SessionInterface" but no such service exists. Did you create a class that implements this interface? Tout fonctionne sauf au moment de transférer le code dans CartService. Par avance merci et bonne continuation.
Oui, dans Symfony 6, on ne peut plus demander une SessionInterface dans un constructeur : à la place il faut demander un RequestStack, et trouver la session dedans : phpnews.io/feeditem/new-in-symfony-5-3-session-service-deprecation
Salut lior et merci pour ce tutoriel. Moi j'aimerais savoir comment déployer une application symfony sur un serveur en production à travers la ligne de commande
Tout d'abord Grafikart a fait une super vidéo sur l'hébergement d'une application Symfony, sinon, saches que dans chacune de mes formations en ligne j'apprend comment mettre en ligne : learn.web-develop.me?coupon=REDUC55
Je comprend pas "extraction de la base data.db" ? Tu as toutes les instructions ici : github.com/liorchamla/cours-symfony-session-panier en bas de page normalement
merci beaucoup pour la vidéo ma vraiment aider ,j'ai une question quand je vide mon panier j'ai pas le message qui s'affiche "Surprise, c'est vide !"et j'ai cette erreure Return value of App\Service\Cart\CartService::getFullcart() must be of the type array, null returned ??
Parce que ta méthode getFullCart renvoi null alors qu'elle devrait renvoyer un tableau. Tu corrigerais le truc en enlevant le typehint du retour (le ": array" après la déclaration de la fonction)
@@LiorCHAMLA merci bcp pour ta réponse mais malheureusement cette fois quand j'ai enlevé le typehint j'ai cette erreur "Notice: Undefined variable: panierWithData"
J'ai une formation de 15h sur le sujet sur ma plateforme : learn.web-develop.me :-) avec des coupons de réduction dans les descriptions de mes vidéos TH-cam
Bonjour, merci pour ce tuto qui tombe à pic puisque je dois développer une partie e-commerce dans ma plateforme Symfony. J'utilise la version 3.4 mais je pense que ça pourra m'être utile. Juste une question, quel éditeur de code utilises-tu ? C'est génial d'avoir la doc de symfony en fenêtre contextuelle quand tu codes ! J'utilise Atom personnellement.
@@LiorCHAMLA J'ai installé cette extension mais il ne reconnaît pas du tout Symfony. Par exemple ça me souligne en rouge les fonctions comme createQueryBuilder() (erreur Undefined method) et ne me propose pas non plus les méthodes de ma variable $request comme toi dans la vidéo...
Bonsoir, svp lorsque je tape composer install il m'affiche ces erreurs: Installing dependencies from lock file (including require-dev) Verifying lock file contents can be installed on current platform. Your lock file does not contain a compatible set of packages. Please run composer update. Problem 1 - Root composer.json requires php ^7.1.3 but your php version (8.0.2) does not satisfy that requirement. ..... Problem 88 - doctrine/annotations v1.7.0 requires php ^7.1 -> your php version (8.0.2) does not satisfy that requirement. - sensio/framework-extra-bundle v5.4.1 requires doctrine/annotations ^1.0 -> satisfiable by doctrine/annotations[v1.7.0]. - sensio/framework-extra-bundle is locked to version v5.4.1 and an update of this package was not requested. ocramius/package-versions only provides support for Composer 2 in 1.8+, which requires PHP 7.4. If you can not upgrade PHP you can require composer/package-versions-deprecated to resolve this with PHP 7.0+. You are using Composer 2, which some of your plugins seem to be incompatible with. Make sure you update your plugins or report a plugin-issue to ask them to support Composer 2.Installing dependencies from lock file (including require-dev) Verifying lock file contents can be installed on current platform. Your lock file does not contain a compatible set of packages. Please run composer update. j'ai utilisé aussi composer self-update --2 (mais toujours rien) Svp le dossier vendor il sera crée après composer install? Prière si vous avez une solution prière de m'envoyer. J'ai cherché mais j'ai pas trouvé une solution. Merci
Petite question sur le site: les apercus je ne les voient pas. Deuxieme, je cherchais de faire l'achat mais je dois recharger ma carte prepayé: il m'a enregistrée sur le site mais je ne peut pas changer le mot de passe vu qu'il ne m'a pas envoyer aucune mail. C'est normal?
Bonjour, Très bonne vidéo, très claire comme d'habitude. Est-ce que quelqu'un pourrait me renseigner sur l'extension à utiliser pour avoir les raccourcis html sur un fichier twig? (Pour les créations de div, table,... quasi automatique via les raccourcis). J'ai installer toutes les extensions qui me semblaient nécessaire, mais cela ne fonctionne toujours pas quand je suis sur un fichier twig :/ Merci d'avance :)
Il faut que tu ailles dans tes settings pour dire à Emmet de bosser dans les fichiers Twig, tu trouveras ça dans les deux premières heures de ma formation Symfony 5 qui est sur ma chaine TH-cam :)
tu es vraiment super pédagogue , j'apprends énormément avec tes tutos +1 abo , j'aurai une question si jamais quelqu'un veut bien m'aiguiller , comment je peux garder la session , donc le panier ,lors d'une déconnexion ? je ne vois pas ou changer ça
Merci pour ce video.c'est possible de faire un vidéo d'exemple sur l'héritage( personne,personne physique ,morale) avec la gestion des utilisateurs
5 ปีที่แล้ว
Ça envoie du lourd avec les zooms et les highlights, j'espère que Screenflow te plaît, tu as l'air de l'avoir bien pris en main ! Tu fais des vidéos de qualité pro avec ça, c'est top, félicitations 👍😎!
Bonjour, J'ai le message suivant lorsque j'ai ajouté la fonction add à CartController : Cannot determine controller argument for "App\Controller\CartController::add()": the $request argument is type-h inted with the non-existent class or interface: "App\Controller\Request". Did you forget to add a use statement? Et pourtant, j'ai respcté à la lettre le tuto. Voici l'extrait de code: /** * @Route("panier/add/{id}", name="cart_add") */ public function add($id, Request $request) { $session = $request->getSession(); $panier = $session->get('panier', []); $panier[$id] = 1; $session->set('panier', $panier); dd($session->get('panier')); } Je cherche depuis un moment, je ne vois pas où est mon erreur.
Bah regarde ton message d'erreur : "Did you gorget to add a use statement ?" Il te dit clairement que la classe Request que tu demandes n'existe pas, car tu n'as pas expliqué à PHP d'où elle vient ! En haut du fichier, ajoute le "use" qui dira que ça vient de HttpFoundation
J'ai encore une erreur : In FileLoader.php line 166: Case mismatch between loaded and declared class names: "App\Service\cart\CartService" vs "App\Service\Cart\CartService" in C:\wamp\www\boutique\config/services.yaml (which is loaded in resource "C:\wamp\www\boutique\conf ig/services.yaml"). In DebugClassLoader.php line 194: Case mismatch between loaded and declared class names: "App\Service\cart\CartService" vs "App\Service\Cart\CartService". Extrait de code CartController.php:
La connaissance est une belle chose certes, mais la transmission en est plus; c'est un art. Bah t'es doué du coup pour cette transmission. Merci pour ce tuto Lior. Puisse Dieu multiplier tes connaissances.
Quand est il de la base de donnée ,on sait qu'il y a product mais tu as juste créer un controller pour le panier mais le panier en.lui même par rapport a la base de donnée, est ce dedans? Est ce une entité relié a product en ManyToOne ?
@@LiorCHAMLA eh bien, j'ai essayé, j'ai essayé de monter un projet ecommerce avec l'aide de tes cours sur les annonces de locations d elogement et tout fonctionnes tres bien, sauf pour le panier que je souhaites ajouter , quand je fais une dd($session->get('panier)')); il me retourne toujours null , alors que tout a fonctionné jusqu'a maintenant les ad ont leur id et tout ce qui permet de detecter une annonce, je vois pas ou est le probleme, je t'enverrai un tres gros pourboir si tu m'aides llior ,on dirait qu'il ne trouve pas la session puisque c'est la session qui declenche le panier..
hhahahaha j'ai trouvé la faille, n'importequoi! , j'ai ajouté un ) en trop dans la dd , c'est bizarre que j'ai pas eu de message d'erreur de twig ;) alors, pourboire ou pas? :D, , ecoutes je finis mon projet et je reviendrais vers toi
@@LiorCHAMLA bonjour lllior , en ce moment, je bute sur le formulaire de connecxion fait main que tu as fait sur ton site de location , ce qui me bute c'est que j'ai essayé de mettre un token, csrf mais ca ne fonctionne pas, avec ou sans token il se connecte sur le site, j'ai essayé manuellement symfony.com/doc/current/security/csrf.html mais ca ne fonctionne toujours pas, je n'ai pas vu de tuto de toi parlant du csrf.
Salut, merci pour ta vidéo très instructive. COmment monter les données dans la db ensuite ? après plusieurs essai j'obtiens ce résultat. Argument 1 passed to App\Entity\Commandes::setArticle() must be an instance of App\Entity\Articles or null, int given, called in D:\Documents\Projet_informatique\Date-with-Laurette\DatewithLaurette\src\Controller\CartController.php on line 312 Merci pour vos réponses
Bah oui tu passes à ta commande un ID (un int) au lieu de lui passer l'article qui correspond à l'ID, tu devrais d'abord aller chercher l'article avec le repository, puis le donner à ta commande
Merci pour cette video très explicite. Parcontre quand je demande à avoir la SESSION autowiring, j'ai que deux option ;SessionHandler Interface ou Security authentication.session._strategy. Laquelle puis-je choisir pour avoir le même resultat que vous ?
j ai eu un souci au moment de cette commande php bin/console d:m:m qui me dit q "An exception occurred in driver: could not find driver" " could not find driver "
Bonjour Mon produit est associé à une autre table, la table couleur car le client peut choisir sa couleur lorsqu'il met le produit dans le panier. C'est une association ManyToMany car un produit peut avoir plusieurs couleurs proposées et une couleurs peut être proposée dans plusieurs produit, donc il y a une table intermédiaire. Comment récupérer la donnée de la couleur choisie et comment faire lorsqu'on rajoute le même produit avec une couleur différente que le panier ne le rajoute pas dans le même id que la précédente mais en compte une nouvelle car même id mais pas même couleur. Merci vraiment pour votre aide. sur symfony par exemple pour la vente d'un vêtement le choix de la taille et couleur.
J'ai bien compris Mirna, mais là sur TH-cam ça va pas être simple d'en discuter et de t'aider. Merci en tout cas de me suivre et d'avoir pris le temps de commenter :)
Salut Lior çava j'espère mais pouvez-vous m'aider un peu , quand je fais un coup de composer install ou composer update ça me retourne toujours cette erreur : Script cache:clear returned with error code 255 !! !! Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "DoctrineCacheBundle" from namespace "Doctrine\Bundle\DoctrineCacheBundle". !! Did you forget a "use" statement for another namespace? in D:\session-symfony\cours-symfony-session-panier\src\Kernel.php:23 !! Stack trace: !! #0 D:\session-symfony\cours-symfony-session-panier\vendor\symfony\http-kernel\Kernel.php(429): App\Kernel->registerBundles() !! #1 D:\session-symfony\cours-symfony-session-panier\vendor\symfony\http-kernel\Kernel.php(130): Symfony\Component\HttpKernel\Kernel->initializeBundles() !! #2 D:\session-symfony\cours-symfony-session-panier\vendor\symfony\framework-bundle\Console\Application.php(159): Symfony\Component\HttpKernel\Kernel->boot() !! #3 D:\session-symfony\cours-symfony-session-panier\vendor\symfony\framework-bundle\Console\Application.php(65): Symfony\Bundle\FrameworkBundle\Console\Application->registerCommands() !! #4 D:\session-symfony\cours-symfony-session-panier\vendor\symfony\console\Application.php(149): Symfon in D:\session-symfony\cours-symfony-session-panier\src\Kernel.php on line 23 . Votre aide me serait bénéfique . Merci pour vos tutos gratuits .
Salut. Ce bundle n'est plus à jour. Pour utiliser le projet tu dois : Supprimer la ligne 6 dans config/bundles.php : Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle::class => ['all' => true], Et remplacer le contenu du fichier config/packages/doctrine_migrations.yaml par : doctrine_migrations: migrations_paths: 'DoctrineMigrations': '%kernel.project_dir%/src/Migrations'
J'adore t'es vidéos tu expliques vraiment super bien ! J'ai par ailleurs acheter t'as formation sur udemy, mais un truc me chagrine, j'ai toujours entendu dire d'éviter au maximum de faire des requêtes SQL, toi tu fais une boucle et dedans un find a chaque article si j'ai 50 articles ça fais 50 requêtes ... je suis sur que l'on doit pouvoir optimiser un truc pareil non ?
Oui tu peux optimiser en faisant une seule requête qui ramènent tous les produits du panier mais là franchement on est sur 10 requêtes peut être 20 maxi c'est un panier hein 😁
Tu as raison c est plus pour apprendre que je pose la question , savoir ce que l on peu s autorisé ou pas niveau optimisation, certains utilisent des jointures plutôt que les relations de symfony par exemple, je débute et me renseigne ;), et franchement j ai jamais vue plus clair que t es vidéos ! Pond vite de nouvelles formations !
Hello Lior, d'abord merci beaucoup pour cette vidéo qui est fluide et très bien expliquée ! Pourrais-tu faire un tutoriel sur CalendarBundle - FullCalendar.js intégration sur Symfony ?
voici mon message d'erreur exact : Cannot resolve argument $cart of "App\Controller\CartController::add()": Cannot autowire service "App\Classes\Cart": argument "$session" of method "__construct()" references interface "Symfony\Component\HttpFoundation\Session\SessionInterface" but no such service exists. Did you create a class that implements this interface?
Bonjour Lior, merci beaucoup pour ta video! ça fait des jours que j'essaye de trouver comment stocker la commande une fois le panier validé, pourrais-tu me dire comment faire?
Bonjour Lior, merci beaucoup pour toutes ces formations sur TH-cam, je viens d'ailleurs d'acheter ta formation de 20H sur Symfony, Une question svp : est ce que les formations sur TH-cam sont les memes que sur ton site learn.web.develop.me ?
Les formations sur ma plateforme sont beaucoup plus longues et poussées, TH-cam ce sont des petites vidéos thématiques pour aider mes étudiants et compléter les formations payantes :)
@@LiorCHAMLA Merci beaucoup Lior, je viens justement d'acheter une formation Symfony sur votre site et je ne le regrette vraiment pas, cela m'aide énormément et gràce à vous, je peux enfin avancer et surtout m'entrainer.
Tutoriel parfait aussi bien dans son contenu que sa forme. Le workflow et tes explications limpides méritent plus qu'un pouce bleu !
Le refactoring en fin de vidéo est juste magique !
Merci Lior 🙏
Merci énormément pour ce commentaire
C'est tellement propre et limpide, merci pour tout ce ma-gni-fique taff
Merci à toi de me suivre :)
Sérieux t'es mon héro !
Je prépare ma certif en Symfony et chacune de tes vidéos est une mine de savoir et de bonnes idées !!!
Encore merci Lior 👍
Oulàà, la certif Symfony elle rigole pas du tout ! Il semblerait qu'elle est vraiment HARDCORE. Un jour je m'y attaquerai, en attendant tu devrais regarder cette vidéo ou l'intervenant parle de son expérience : th-cam.com/video/DT_hJSgDrwE/w-d-xo.html
Merci pour votre dévouement dans l'enseignement de jeunes développeurs en nous permettant d'apprendre une matière simple et pratique (Pragmatique) ,je suis nouveau dans symfony et c'est grace a vos tuto en ligne que je me perfectionne tout les jours..). depuis Kinshasa-RDCONGO
Merci beaucoup :)
Merci beaucoup pour ce tuto ! J'ai appris à utiliser toute seule Symfony il y a quelques années en commençant par le 2.8 puis en basculant sur la 3. Par manque de temps, je n'ai pas eu l'occasion de voir Symfony 4 et encore moins la v5 mais c'est très intéressant de connaître les bonnes pratiques. Je ne savais pas qu'il fallait mettre le maximum de process dans des services, je mets tout dans les Controller perso. 😅 Je veillerai du coup à mettre à jour mon code pour les alléger. Tu expliques très bien. Si à l'époque j'avais pensé à suivre des tutos sur YT, ça m'aurait épargné des heures de galère à essayer de comprendre ce framework...
Merci beaucoup pour ce commentaire :)
Merci Lior, vous prenez du temps pour préparer les videos , elles sont claires précises et faciles à comprendre. 👍❤
Bonjour Lior, Merci pour tes superbes vidéos. J'ai suivi le tuto créer une session et un panier et avec le CartService. Impeccable !
Ensuite j'ai crée une categorie reliée au produit , en suivant un autre de tes tutos (Comprendre les entités et leur relation)
Parfait les produits avec leur catégories s'affichent parfaitement.
Par contre mon CartService ne fonctionne plus.Finalement J'ai refait le code avec Symfony version 5.4 et ça fonctionne.
Je ne sais pas quel est le problème avec symfony 6 pour ce même code.
En tout cas, j'ai trouvé une solution avec symfony 5.4 et ça me va pour l'instant!!
super tes vidéos Lior! A bientôt
Bonjour, je passe un exam en développement web il me manquer le panier sur Symfony. Grace à toi tous marche ! merci infiniment ! bonne continuation à toi ! t'es un crack
Bravo !
frere je ne pouvais pas rever mieux, merci pour tout grace a toi je me sens encore plus bien, clear et simple com d'hab respect frere
De rien merci à toi :)
C'est juste magnifique. Je ne sais pas ce que le peuple peut demander de plus. #Merci #ThankYou.
De rien merci à toi :)
Hello Lior ! Une petite idée de série de vidéos Symfony qui pourraient être très utiles ! Pour chaque vidéo, tu nous présentes un bundle très utile, et tu pousses ses fonctionnalités à fond dans un exemple !
On peut imaginer :
- KnpPaginatorBundle : pagination (avec intégration d'un formulaire pour filtrer le tableau renvoyé)
- Fullcalendar : calendrier/agenda (en poussant à fond avec la possibilité de pouvoir ajouter, modifier, supprimer des éléments et en personnalisant des paramètres)
- FOSUserBunde : Gestion user
- VichUploaderBundle : Upload/Téléchargement de fichiers
Et j'en passe, ça pourrait vraiment être sympa, surtout avec ta propre manière d'expliquer ;)
Ou un autre concept qui serait dans ton temps libre, de répondre à une question d'un abonné sur un truc qu'il a du mal à faire, et tu en ferais une vidéo pour montrer comment faire ce qu'il souhaite, comme ça, ça pourrait aider les autres qui auraient la même difficulté.
Sinon bonne vidéo comme d'hab ;)
Merci énormément pour ces idées :)
Vraiment bravo pour cette vidéo ; images et son de qualité quand à l'explication du code et la factorisation à la fin, c'est parfait !
Tu gagnes un nouvel abonné
Parfait ça ! Merci à toi :)
Je voulais juste regarder 5 min, et je me suis fais absorbé jusqu'à la fin par tes explications meme si j'en ai pas du tout besoin mdr
instaBlaster
Comme d'habitude avec Lior c'est clair net et précis , on comprends tout!!
Merci énormément:)
Mon Champion est encore une fois de retour.
Bonjour et Grand Merci à toi Lior 👏👏👏, vraiment Symfony 4 c'est la vie 😍.
C'est la vie :D merci
Tu es vraiment excellent ! Dieu bénisse. J'attends toujours une petite video/formation sur les test unitaires et fonctionnels sinon bonne continuation..... Plein de force
Mais arrêtez de me demander ça haha, je SUIS NUL en tests unitaires, j'apprend tous les jours dessus mais je suis pas encore bon pour former dessus. Vas voir des vidéos chez Grafikart il gère ça super bien !
@@LiorCHAMLA hahaha tu n'es pas nul, j'aime bien Grafikart mais ses Tutos de tests ne sont pas très récents. Sinon continue comme ça
T'es un tueur!! Merci pour tous tes conseils et le temps que tu passes à nous partager tes connaissances
Merci beaucoup :)
Olala c'est si bien expliqué l'argument en cette video! Bravo
Merciiii Lior !!! ca fait longtemps que j'attendais un tuto propre pr la creation d'un panier avec symfony. Super tuto :D
Merci énormément :)
Lior tout d'abord merci, étant marseillais et en formation à l'AFPA Marseille saint Jérôme, j'ai appris plus avec toi que en 8 mois à l'AFPA donc un grand MERCI
Merci Maradona, ça fait chaud au coeur même si c'est pas cool pour les mecs de l'AFPA 😂😂
Des formations de grande qualité toujours. Merci
Merci beaucoup
Mon Ami Lior je apprend beaucoup avec toi merci c'est un plaisir la technique est important Bravo ton café est direct cousin
Merci beaucoup cousin :p
il n'y a qu'avec toi que j'arrive a comprendre symfony c'est fou !
:)
Excellent tuto Lior ! J'apprend grandement grâce à vous, merci beaucoup
De rien merci à toi de me suivre 😃
vous êtes vraiment le meilleur formateur j'ai appris bcp sur symfony à travers vos tutoriels merci infiniment lior .je voulais savoir si vous avez faient des tutos sur angular
Alors 1 millards de fois merci pour cette vidéo plus que claire et très efficace. Pour ma part je suis sous Symfony 6 et j'ai rencontré quelques difficultés au moment d'exporter "la réflexion" du controller au service. L'autowiring de SessionInterface ne fonctionne pas... Du coup j'ai opté, en m'appuyant sur la doc de Symfo (V6.0), pour l'objet RequestStack (Symfony\Component\HttpFoundation\RequestStack), est-ce la bonne façon de faire ?
Merci beaucoup, vous venez de sauver ma tête!
De rien merci à toi :)
Merci Lior, tu m'as vraiment beaucoup aidé et tes explications sont vraiment très clair, BRAVO !!!!!
Merci à toi :)
Bonjour, excellent travail. Svp je suis arrivé à 7:33 mais ma table product esr vide. Svp avez vous une vidéo ou vous avez rempli votre table product par des images? Merci
c'est bon j'ai pu résoudre le problème Merci
Parfait :)
Parfaitement expliqué, félicitations pour ton travail de qualité !
Merci beaucoup !
Tutoriel très sympathique que j'ai eu plaisir à suivre et qui me sera très utile pour un projet professionnel (malheureusement dans l'éducation nationale en tant qu'enseignant, ça ne paye pas beaucoup et donc j'apprécie ce genre de ressources mis à disposition gratuitement). Merci beaucoup Lior !
Travaillant sur Mac (macOS Catalina), j'ai constaté un bug désagréable sur Firefox, Chrome ou Safari (je n'ai pas essayé Edge...) : la session est effacée entre deux requêtes... Sur Internet, j'ai trouvé peu de solutions (une consistait à ajouter un fichier favicon.ico dans le dossier public). Finalement j'ai résolu ce problème en utilisant la commande symfony serve décrite dans la documentation d'installation d'un site Symfony plutôt que php bin/console server:run
Par ailleurs, le site lorempixel.com utilisé par Faker semble être down depuis un certain temps. Donc j'ai dû réécrire la génération d'url image dans les fixtures. J'ai utilisé le site picsum.photos et la génération de nombres aléatoires par Faker (Peut-être pas la solution la plus élégante...)
Bravo pour les problèmes que tu as corrigé, même si je les trouve bizarre :x En tout cas merci beaucoup pour ton commentaire !
Très bonne présentation
T'es le meilleur , Merci Lior
Merci beaucoup !
Merci. Comme d'habitude. Impeccable.
Merci beaucoup :)
Excellent merci. ça parait tellement simple quand on te regarde, un peu comme quand tu vois de grands guitaristes jouer ça à l'air si facile mais une fois l'instrument dans les mains c'est autre chose ^^ Dans la console j'ai un warning " Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead" mais j'ai beau faire des rchercher je ne trouve pas ce array_key_exists, comment fixer ce warning ?
Tu dois te tromper sur ce que tu passes à array_key_exists(), là il dit que tu lui passes un objet, alors que tu devrais lui passer un tableau, l'erreur vient de là !
T'es le meilleur mec ! merci
voila je viens de prendre 2 cours
Wow merci pour ta confiance ! J'espère que ça va te plaire :)
tres bien fait comme d'habitube.merci beaucoup lior
Merci Ousmane :)
Franchement : Merci pour votre pédagogie !
Merci à toi :)
Bonjour,
J'ai une question concernant la persistance du panier. Dans votre vidéo vous le sauvegarder dans la session on est bien d'accord. Donc si le client ferme le navigateur et revient sur le site, son panier sera vidé.
Ma question est la suivante : Comment peut-on faire pour que le panier persiste lors de la déconnexion de l'utilisateur, c-à-d lorsque le client se reconnectera sur le site, il verra son panier dans le même état que lorsqu'il a fermé le navigateur.
Plusieurs solutions, dont le stockage en bdd, cookies, ..
Quelle est la meilleure méthode selon vous ?
Merci d'avance
Pour moi si tu veux une solution vraiment pérenne (comme Amazon), ce sera la base de données, car même les cookies peuvent être "clear" côté client (si tu clear le cache par exemple)
bon je vais encore me répéter c'est parfait merveilleux
Enorme !!! Merci beaucoup ! Tu nous feras une vidéo sur le paiement en ligne (stripe/paypal)????
GRAVE !!!! y'a que les dev US qui abordent le sujet sur UDEMY. Lior stp on pourra enfin monétiser notre taff suite à tes cours !
Ma foi pourquoi pas, la doc est relativement simple tout de même :x et y a beaucoup de gens qui ont fait des tutos dessus mais si vous pensez que c'est bien ça pourrait venir
@@LiorCHAMLA Merci pour ta réponse ! Ce serait trop bien ! La doc de stripe n'est pas ouf pour la double vérification (3d secure)!
Comme c'est un sujet ou la sécurité est particulièrement importante, un tuto serait rassurant 🙂
Encore merci pour les tutos a+
@@RaphManiania ça serait trop poussé le 3d secure je pense pour une vidéo tuto, c'est typique le moment où je dirai "pour aller plus loin allez voir la doc"
@@LiorCHAMLA ah ok ! Je comprends ! Mais c'est dommage, parce que la doc sur ce point est vraiment pas ouf et comme 3D secure c'est quasi obligatoire maintenant ça pourrait aider pas mal de gens je pense 😉
Ou un tuto sur payum le bundle de paiement ? Peut être qu'il serait plus simple a traiter et plus sécurisé ? Enfin bon comme tu le sens, c'est déjà super tous tes tuto gratuits 👍
Tres claire la presentation. stp comment on fait donc pour valider une commande et stocker chaque ligne dans la base de donnees ?
Bah faut y réfléchir et le faire :)
@@LiorCHAMLA en fait j'ai essaye sans succes.
Bonsoir Lior, j'ai un souci à la 13:06 min, voila le résulta CartController.php on line 36:
[ ], je constate que l'array est vide. Merci d'avance pour ton aide. Bonne soirée.
C'est OK, maintenant.
Parfait !
Super vidéo!!! Merci! Très bien expliqué!
Merci à toi 😊
Bonjour cher Monsieur!
Excusez moi je serai un peu hors sujet mais je réalise actuellement un site de vente en ligne, qui comprend un back office permettant de gèrer les commandes passées par les clients.
Mon problème se situe au niveau de l'enregistrement du contenu d'un panier dans la base de données.
J'ai une table "commande" qui contient un champ id_produit et un champ id_cammande, et je ne vois pas comment faire pour enregistrer plusieurs id_produit (si le panier contient plusieurs produits avec des id différents) sous un même id_commande.
A l'heure actuelle, lorsqu'il y a plusieurs produits, seul l'id_produit du dernier produit (par exemple, si il y a 4 produits, seul l'id de produit4 est pris en compte) est enregistré dans la table commande.
Merci d'avance pour votre aide.
Je ne peux pas deviner d'où vient ton soucis :x c'est compliqué de t'aider ici. Il va falloir trouver en cherchant sans relache :p
28:46 Salut à toi Lior, je suis débutant en prog et tes explications sont super.
Pourquoi, dans la fonction remove() du cart utilises-tu if(!empty($panier[$id)) ?
Pour l'exercice, j'ai écrit if($panier[$id]) et ça semble marcher aussi bien et c'est plus simple.
Y a-t-il une raison particulière pour l'utilisation de la fonction empty()?
Merci d'avance !
if($panier[$id]) si ça n'existe pas te donnera une Notice (un message d'erreur très peu grave, mais un message d'erreur quand même) même si tu ne la vois pas à l'écran, la Notice existe (elle dit que $panier[$id] n'existe pas).
Avec le empty() tu évites la notice :)
@@LiorCHAMLA Merci, je ne connaissais pas cette notion de Notice.
Bonjour, merci pour toutes ces vidéos, ça m'aide beaucoup. Par contre, je suis sur un projet en symfony 6.2 et La SessionInterface n'est plus dispo pour la gestion du panier. J'avoue que je galère un peu. message d'erreur dit que le service n'est pas déclaré. Dois-je le declarer en créant un fichier SessionInterface.php ou une autre solution ? Merci pour votre retour. Laurent
En Symfony 6, on ne peut plus demander la session avec SessionInterface dans le constructeur. Tu dois demander la RequestStack, et dans cette RequestStack tu pourras retrouver la currentRequest, qui elle même possède la session :)
Vois ici symfony.com/doc/current/session.html#basic-usage
Merci pour l'info et bonne année :-)
Bonjour, je récupère bien mes data dans mon debug de ma fonction add mais je n'arrive pas à récupérer de data pour ma fonction get
Super vidéo Lior. Merci encore une fois.
J'ai juste une petite question par rapport au panier, je veux l'améliorer et mettre le '-' et le '+' pour la quantité directement sur le panier, est-ce que pour changer le total de la commande qui se trouve en dessous, j'aurais besoin des appels ajax ou bien autre chose ?
Appels AJAX ou juste des liens vers des actions genre :
- public function decrement($id) qui permettrait de faire baisser la quantité d'un produit donné
- public function increment($id) qui permettrait de faire monter la quantité d'un produit donné :)
Top merci lior cest exactement c que cherche a comprendre depuis longtemps merci beaucoup
De rien merci à toi :)
Merci pour cette super vidéo Lior :) Tu m'as épargné une insomnie hier soir \o/
Hé en merci à toi :)
magnifique !!! tout simplement merci merci et merci.
De rien merci à toi :)
Merci pour la vidéo Lior, géniale comme dhab !
Merci beaucoup :)
Bonjour Lior, merci pour ces vidéos passionnantes ! j'ai cependant une question dans le cart service, il me met : Call to a member function getPrice() on null, alors que j'ai bien les données dans data.db, merci pour votre réponse. JFA
Tu comprends bien que là c'est hyper dur de savoir ce qui se passe, il faudrait débugger ton code pour voir ce qui peut potentiellement se passer :x
j' ai eu la même chose. je change de navigateur et ça fonctionne. ou bien en mode privé(une histoire de cache?..) il sufffit de supprimer l'historique du navigateur
@Lior, merci pour cette vidéo, qui en passant fonctionne parfaitement sous SF5.1.2 :-)
Petite question, si on souhaite ajouter les flashbag, pouvons nous les ajouter directement dans le CartService ?
En fait, c'est tout simple, $this->session->getFlashBag()->add('success','Article supprimé avec succès'); que j'ai ajouté dans CartService dans la fonction en question :d et ensuite on l'ajoute dans la vue bien sur ;)
Merci pour cette belle présentation des sessions sur Symfony.
Sinon qu'elle ColorSchema utilisez vous dans Visual Code ? Est ce qu'il est disponible sur Sublime Texte ?
Les couleurs c'est Palenight et ça doit surement exister sur SublimeText :)
@@LiorCHAMLA merci
C'est un détail mais je n'aurais pas injecté la session dans le service pour qu'il soit "sans état" (je l'aurais gardé dans le controller en passant le panier dans le service) car on peut imaginer d'autres "contextes" que la session qui sollicitent le même service (ex : api). Qu'en penses-tu ? Sinon, tu fais vraiment preuve d'une très bonne pédagogie. Bravo Lior et merci !
Bah je pense que si effectivement tu as l'idée que ton panier va être utile dans plusieurs contexte, tu pourrais créer une interface CartStorageInterface et deux classes qui l'implémentent : une avec la session, l'autre avec un autre moyen de stockage (REDIS ?) et en fonction du contexte tu passes à ton service l'objet adapté ?
Mais je me demande si ce n'est pas aller un peu loin ^^
Bonjour Lior un grand merci pour ta chaine. Je suis bloqué au moment d'utiliser le add de CartService. j'obtiens ce message : Cannot resolve argument $cartService of "App\Controller\CartController::add()": Cannot autowire service "App\Service\Cart\CartService": argument "$session" of method "__construct()" references interface "Symfony\Component\HttpFoundation\Session\SessionInterface" but no such service exists. Did you create a class that implements this interface? Tout fonctionne sauf au moment de transférer le code dans CartService. Par avance merci et bonne continuation.
Oui, dans Symfony 6, on ne peut plus demander une SessionInterface dans un constructeur : à la place il faut demander un RequestStack, et trouver la session dedans : phpnews.io/feeditem/new-in-symfony-5-3-session-service-deprecation
Salut lior et merci pour ce tutoriel. Moi j'aimerais savoir comment déployer une application symfony sur un serveur en production à travers la ligne de commande
Tout d'abord Grafikart a fait une super vidéo sur l'hébergement d'une application Symfony, sinon, saches que dans chacune de mes formations en ligne j'apprend comment mettre en ligne : learn.web-develop.me?coupon=REDUC55
Du jamais vu ! , comme si on m'explique comment manger une soupe :) ,Merci beaucoup pour ce tuto je m'abonne
De rien merci à toi :)
apres extraction de la base data.db oon me dit que la migration est fini mais qu'il n'y a aucun query ajouter dans mon sqlite
Je comprend pas "extraction de la base data.db" ? Tu as toutes les instructions ici : github.com/liorchamla/cours-symfony-session-panier en bas de page normalement
Vraiment je vous félicite c'est clair et limpide
Merci ! N'hésites pas à partager :)
franchement t'es le meilleur, chapeau
Merci beaucoup Zoubir
Merci beaucoup pour tt ces explications j'aurais une question sur le principe je peux suivre pour implémenter une méthode "postuler" ?
Je ne comprend pas ta question :'(
Merci beaucoup ta video a été d'une grande aide !!!
merci beaucoup pour la vidéo ma vraiment aider ,j'ai une question quand je vide mon panier j'ai pas le message qui s'affiche "Surprise, c'est vide !"et j'ai cette erreure
Return value of App\Service\Cart\CartService::getFullcart() must be of the type array, null returned ??
Parce que ta méthode getFullCart renvoi null alors qu'elle devrait renvoyer un tableau. Tu corrigerais le truc en enlevant le typehint du retour (le ": array" après la déclaration de la fonction)
@@LiorCHAMLA merci bcp pour ta réponse mais malheureusement cette fois quand j'ai enlevé le typehint j'ai cette erreur "Notice: Undefined variable: panierWithData"
Lior merci à tous :) toujours vous étés mon inspirant en symfony
J'ai une formation de 15h sur le sujet sur ma plateforme : learn.web-develop.me :-) avec des coupons de réduction dans les descriptions de mes vidéos TH-cam
Merci pour les vidéos. C'est possible faire une vidéo maîtrise de formulaire et les services. Merci
super intéressant, merci pour le contenu de qualité
De rien merci à toi :)
Bonjour, super vidéo! Que conseillerez vous pour la gestion de la livraison? Utilisez vous un bundle symfony?
Bah non je coderai moi même un truc haha :p
Bonjour, merci pour ce tuto qui tombe à pic puisque je dois développer une partie e-commerce dans ma plateforme Symfony. J'utilise la version 3.4 mais je pense que ça pourra m'être utile. Juste une question, quel éditeur de code utilises-tu ? C'est génial d'avoir la doc de symfony en fenêtre contextuelle quand tu codes ! J'utilise Atom personnellement.
Ah pardon, je vois que c'est Visual Studio Code, je ne connaissais pas. Y-a-t'il un plugin à télécharger pour avoir la doc de symfony ?
PHP Intelephense :)
Lior CHAMLA Merci !
@@LiorCHAMLA J'ai installé cette extension mais il ne reconnaît pas du tout Symfony. Par exemple ça me souligne en rouge les fonctions comme createQueryBuilder() (erreur Undefined method) et ne me propose pas non plus les méthodes de ma variable $request comme toi dans la vidéo...
@@larodeusepale lance une indexation du code en faisant CTRL + shift + p et en cherchant "index"
Bonsoir, svp lorsque je tape composer install
il m'affiche ces erreurs:
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Your lock file does not contain a compatible set of packages. Please run composer update.
Problem 1
- Root composer.json requires php ^7.1.3 but your php version (8.0.2) does not satisfy that requirement.
.....
Problem 88
- doctrine/annotations v1.7.0 requires php ^7.1 -> your php version (8.0.2) does not satisfy that requirement.
- sensio/framework-extra-bundle v5.4.1 requires doctrine/annotations ^1.0 -> satisfiable by doctrine/annotations[v1.7.0].
- sensio/framework-extra-bundle is locked to version v5.4.1 and an update of this package was not requested.
ocramius/package-versions only provides support for Composer 2 in 1.8+, which requires PHP 7.4.
If you can not upgrade PHP you can require composer/package-versions-deprecated to resolve this with PHP 7.0+.
You are using Composer 2, which some of your plugins seem to be incompatible with. Make sure you update your plugins or report a plugin-issue to ask them to support Composer 2.Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Your lock file does not contain a compatible set of packages. Please run composer update.
j'ai utilisé aussi composer self-update --2 (mais toujours rien)
Svp le dossier vendor il sera crée après composer install?
Prière si vous avez une solution prière de m'envoyer. J'ai cherché mais j'ai pas trouvé une solution. Merci
Peut-être supprime le fichier composer.lock et réinstall :)
Petite question sur le site: les apercus je ne les voient pas. Deuxieme, je cherchais de faire l'achat mais je dois recharger ma carte prepayé: il m'a enregistrée sur le site mais je ne peut pas changer le mot de passe vu qu'il ne m'a pas envoyer aucune mail. C'est normal?
Je ne pense pas que tu aies besoin de changer de mot de passe si tu t'es pas déjà inscrit. Faut juste refaire le processus d'achat j'imagine
@@LiorCHAMLA merci!
the best video ever, thx a lot.
Bonjour,
Très bonne vidéo, très claire comme d'habitude.
Est-ce que quelqu'un pourrait me renseigner sur l'extension à utiliser pour avoir les raccourcis html sur un fichier twig? (Pour les créations de div, table,... quasi automatique via les raccourcis). J'ai installer toutes les extensions qui me semblaient nécessaire, mais cela ne fonctionne toujours pas quand je suis sur un fichier twig :/
Merci d'avance :)
Il faut que tu ailles dans tes settings pour dire à Emmet de bosser dans les fichiers Twig, tu trouveras ça dans les deux premières heures de ma formation Symfony 5 qui est sur ma chaine TH-cam :)
Très bon tuto!!!
Merci infiniment Lior.
Voulez-vous svp, y inclure le paiement par PayPal ou stripe?
Dans la suite de la formation on met effectivement en place le paiement par Stripe :)
@@LiorCHAMLA Merci beaucoup :)
tu es vraiment super pédagogue , j'apprends énormément avec tes tutos +1 abo , j'aurai une question si jamais quelqu'un veut bien m'aiguiller , comment je peux garder la session , donc le panier ,lors d'une déconnexion ? je ne vois pas ou changer ça
Je n'ai pas encore eu ce besoin donc j'ai pas trop d'idée, faudrait chercher :x
Bonjour , t as pas un tuto sur le checkout du panier
Lior vraiment merci bcp
Merci pour ce video.c'est possible de faire un vidéo d'exemple sur l'héritage( personne,personne physique ,morale) avec la gestion des utilisateurs
Ça envoie du lourd avec les zooms et les highlights, j'espère que Screenflow te plaît, tu as l'air de l'avoir bien pris en main ! Tu fais des vidéos de qualité pro avec ça, c'est top, félicitations 👍😎!
Merci Jérem :)
Bonjour,
J'ai le message suivant lorsque j'ai ajouté la fonction add à CartController :
Cannot determine controller argument for "App\Controller\CartController::add()": the $request argument is type-h
inted with the non-existent class or interface: "App\Controller\Request". Did you forget to add a use statement?
Et pourtant, j'ai respcté à la lettre le tuto. Voici l'extrait de code:
/**
* @Route("panier/add/{id}", name="cart_add")
*/
public function add($id, Request $request) {
$session = $request->getSession();
$panier = $session->get('panier', []);
$panier[$id] = 1;
$session->set('panier', $panier);
dd($session->get('panier'));
}
Je cherche depuis un moment, je ne vois pas où est mon erreur.
Bah regarde ton message d'erreur : "Did you gorget to add a use statement ?" Il te dit clairement que la classe Request que tu demandes n'existe pas, car tu n'as pas expliqué à PHP d'où elle vient ! En haut du fichier, ajoute le "use" qui dira que ça vient de HttpFoundation
Merci,
Cela marche maintenant
J'ai encore une erreur :
In FileLoader.php line 166:
Case mismatch between loaded and declared class names: "App\Service\cart\CartService" vs "App\Service\Cart\CartService" in C:\wamp\www\boutique\config/services.yaml (which is loaded in resource "C:\wamp\www\boutique\conf
ig/services.yaml").
In DebugClassLoader.php line 194:
Case mismatch between loaded and declared class names: "App\Service\cart\CartService" vs "App\Service\Cart\CartService".
Extrait de code CartController.php:
La connaissance est une belle chose certes, mais la transmission en est plus; c'est un art. Bah t'es doué du coup pour cette transmission. Merci pour ce tuto Lior. Puisse Dieu multiplier tes connaissances.
Merci beaucoup :)
Quand est il de la base de donnée ,on sait qu'il y a product mais tu as juste créer un controller pour le panier mais le panier en.lui même par rapport a la base de donnée, est ce dedans? Est ce une entité relié a product en ManyToOne ?
Non le panier dans cet exemple n'est pas dans la base de données, mais c'est tout à fait faisable :)
@@LiorCHAMLA eh bien, j'ai essayé, j'ai essayé de monter un projet ecommerce avec l'aide de tes cours sur les annonces de locations d elogement et tout fonctionnes tres bien, sauf pour le panier que je souhaites ajouter , quand je fais une dd($session->get('panier)')); il me retourne toujours null , alors que tout a fonctionné jusqu'a maintenant les ad ont leur id et tout ce qui permet de detecter une annonce, je vois pas ou est le probleme, je t'enverrai un tres gros pourboir si tu m'aides llior ,on dirait qu'il ne trouve pas la session puisque c'est la session qui declenche le panier..
hhahahaha j'ai trouvé la faille, n'importequoi! , j'ai ajouté un ) en trop dans la dd , c'est bizarre que j'ai pas eu de message d'erreur de twig ;) alors, pourboire ou pas? :D, , ecoutes je finis mon projet et je reviendrais vers toi
@@LiorCHAMLA bonjour lllior , en ce moment, je bute sur le formulaire de connecxion fait main que tu as fait sur ton site de location , ce qui me bute c'est que j'ai essayé de mettre un token, csrf mais ca ne fonctionne pas, avec ou sans token il se connecte sur le site, j'ai essayé manuellement symfony.com/doc/current/security/csrf.html mais ca ne fonctionne toujours pas, je n'ai pas vu de tuto de toi parlant du csrf.
Salut, merci pour ta vidéo très instructive. COmment monter les données dans la db ensuite ? après plusieurs essai j'obtiens ce résultat. Argument 1 passed to App\Entity\Commandes::setArticle() must be an instance of App\Entity\Articles or null, int given, called in D:\Documents\Projet_informatique\Date-with-Laurette\DatewithLaurette\src\Controller\CartController.php on line 312
Merci pour vos réponses
Bah oui tu passes à ta commande un ID (un int) au lieu de lui passer l'article qui correspond à l'ID, tu devrais d'abord aller chercher l'article avec le repository, puis le donner à ta commande
@@LiorCHAMLA Merci beaucoup Lior ! excuse moi de te répondre aussi tardivement, j'ai pu régler le problème:)
bonjour Lior;
merci pour la video.
serait il possible d'implémenté une interface dans la class CarteService?
Merci pour cette video très explicite. Parcontre quand je demande à avoir la SESSION autowiring, j'ai que deux option ;SessionHandler Interface ou Security authentication.session._strategy. Laquelle puis-je choisir pour avoir le même resultat que vous ?
Tu ne peux plus obtenir la Session par autowiring avec Symfony 6. Tu dois demander la Request (ou la RequestStack) et dedans choper la session :)
@@LiorCHAMLA merci à vous.
j ai eu un souci au moment de cette commande php bin/console d:m:m qui me dit q "An exception occurred in driver: could not find driver" "
could not find driver "
Il doit vous manquer l'extension sqlite dans php
👍
Bonjour
Mon produit est associé à une autre table, la table couleur car le client peut choisir sa couleur lorsqu'il met le produit dans le panier. C'est une association ManyToMany car un produit peut avoir plusieurs couleurs proposées et une couleurs peut être proposée dans plusieurs produit, donc il y a une table intermédiaire. Comment récupérer la donnée de la couleur choisie et comment faire lorsqu'on rajoute le même produit avec une couleur différente que le panier ne le rajoute pas dans le même id que la précédente mais en compte une nouvelle car même id mais pas même couleur. Merci vraiment pour votre aide.
sur symfony
par exemple pour la vente d'un vêtement le choix de la taille et couleur.
J'ai bien compris Mirna, mais là sur TH-cam ça va pas être simple d'en discuter et de t'aider. Merci en tout cas de me suivre et d'avoir pris le temps de commenter :)
@@LiorCHAMLA bonjour j'ai réussi à le faire en créant une entité panier qui set le choix du client.
@@LiorCHAMLA Vos vidéos sont excellentes merci encore
Salut Lior çava j'espère mais pouvez-vous m'aider un peu , quand je fais un coup de composer install ou composer update ça me retourne toujours cette erreur : Script cache:clear returned with error code 255
!!
!! Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "DoctrineCacheBundle" from namespace "Doctrine\Bundle\DoctrineCacheBundle".
!! Did you forget a "use" statement for another namespace? in D:\session-symfony\cours-symfony-session-panier\src\Kernel.php:23
!! Stack trace:
!! #0 D:\session-symfony\cours-symfony-session-panier\vendor\symfony\http-kernel\Kernel.php(429): App\Kernel->registerBundles()
!! #1 D:\session-symfony\cours-symfony-session-panier\vendor\symfony\http-kernel\Kernel.php(130): Symfony\Component\HttpKernel\Kernel->initializeBundles()
!! #2 D:\session-symfony\cours-symfony-session-panier\vendor\symfony\framework-bundle\Console\Application.php(159): Symfony\Component\HttpKernel\Kernel->boot()
!! #3 D:\session-symfony\cours-symfony-session-panier\vendor\symfony\framework-bundle\Console\Application.php(65): Symfony\Bundle\FrameworkBundle\Console\Application->registerCommands()
!! #4 D:\session-symfony\cours-symfony-session-panier\vendor\symfony\console\Application.php(149): Symfon in D:\session-symfony\cours-symfony-session-panier\src\Kernel.php on line 23 .
Votre aide me serait bénéfique . Merci pour vos tutos gratuits .
Salut. Ce bundle n'est plus à jour. Pour utiliser le projet tu dois :
Supprimer la ligne 6 dans config/bundles.php :
Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle::class => ['all' => true],
Et remplacer le contenu du fichier config/packages/doctrine_migrations.yaml par :
doctrine_migrations:
migrations_paths:
'DoctrineMigrations': '%kernel.project_dir%/src/Migrations'
@@treztreiz6370 Merci trez , c'est gentil de ta part .
Parfait !
Quand tu te fais "livrer" le ProductRepository directement dans ta fonction index() de ton panier, j'imagine que c'est propre à Symfony 4 ?
Non ça fonctionne aussi sur la 3.4 :)
Lior CHAMLA Ah oui ? A tester alors, merci !
J'adore t'es vidéos tu expliques vraiment super bien !
J'ai par ailleurs acheter t'as formation sur udemy, mais un truc me chagrine, j'ai toujours entendu dire d'éviter au maximum de faire des requêtes SQL, toi tu fais une boucle et dedans un find a chaque article si j'ai 50 articles ça fais 50 requêtes ... je suis sur que l'on doit pouvoir optimiser un truc pareil non ?
Oui tu peux optimiser en faisant une seule requête qui ramènent tous les produits du panier mais là franchement on est sur 10 requêtes peut être 20 maxi c'est un panier hein 😁
Tu as raison c est plus pour apprendre que je pose la question , savoir ce que l on peu s autorisé ou pas niveau optimisation, certains utilisent des jointures plutôt que les relations de symfony par exemple, je débute et me renseigne ;), et franchement j ai jamais vue plus clair que t es vidéos ! Pond vite de nouvelles formations !
Hello Lior, d'abord merci beaucoup pour cette vidéo qui est fluide et très bien expliquée ! Pourrais-tu faire un tutoriel sur CalendarBundle - FullCalendar.js intégration sur Symfony ?
Je n'ai jamais utilisé ce truc :x merci beaucoup tout de même pour ton commentaire :)
merci de faire partager au publi ton puit de connaissances
Sympa ce terminal .. tu utilise quoi ?
ZSH avec le plugin OhMyZsh
Cool merci man :) je vais tester ça
voici mon message d'erreur exact : Cannot resolve argument $cart of "App\Controller\CartController::add()": Cannot autowire service "App\Classes\Cart": argument "$session" of method "__construct()" references interface "Symfony\Component\HttpFoundation\Session\SessionInterface" but no such service exists. Did you create a class that implements this interface?
Parce que tu utilises Symfony 6, je crois que je t'ai déjà répondu d'ailleurs ^^
Très clair ! Merci beaucoup
Merci à toi :)
Bonjour Lior, merci beaucoup pour ta video! ça fait des jours que j'essaye de trouver comment stocker la commande une fois le panier validé, pourrais-tu me dire comment faire?
Bah il te faut une entité "Commande" dans laquelle tu pourra stocker le panier :x
Merci beaucoup pour Ton effort❤ , pourriez vous faire une vidéo sur symfony Calendar comment impliementer.
Hélas non, c'est pas du tout au programme :)
Super j'attendai une nouvelle vidéo enfin ! :D
La patience est toujours récompensée !
Lior CHAMLA Bientôt la suite avec le système de « transaction; payement » ? :D
Bonjour Lior, merci beaucoup pour toutes ces formations sur TH-cam,
je viens d'ailleurs d'acheter ta formation de 20H sur Symfony,
Une question svp : est ce que les formations sur TH-cam sont les memes que sur ton site learn.web.develop.me ?
Les formations sur ma plateforme sont beaucoup plus longues et poussées, TH-cam ce sont des petites vidéos thématiques pour aider mes étudiants et compléter les formations payantes :)
@@LiorCHAMLA Merci beaucoup Lior, je viens justement d'acheter une formation Symfony sur votre site et je ne le regrette vraiment pas, cela m'aide énormément et gràce à vous, je peux enfin avancer et surtout m'entrainer.
Salut, merci pour tes explications claires et concises ! :) Peux-tu nous donner la liste des extensions que tu utilises sur vscode ? Merci encore !
PHP Intelephense et Twig Language 2 :)