Merci pour ce tutoriel très simple et très instructif, mais j'aimerais savoir quel sont les tutoriels permettant d'avoir un cache qui se met à jour comme tu le dis à 18:10 min, parce qu'après avoir fouillé un peu partout j'ai pas trouvé grand chose de très concluant mis à part le HTTP Etag et sa methode LastModified() que je ne vois pas comment appliquer avec ton tutoriel. Pour toi, quelle serai la solution la plus appropriée ?
Merci Lior pour cette vidéo instructive. Toujours au top ;) Je me demandais comment tu arrivais à n'avoir que les 2 méthodes de l'objet $cache à savoir get() et delete() ? Il me semblait que php intelephense faisait le travail mais de mon côté j'ai toutes les fonctions de php à la place qui s'affichent...
Salut Lior, c'est peut-être pas le bon endroit pour poster ça mais j'ai un soucis avec l'upload de fichier. J'ai un message du genre " the file is too large. allowed maximum size is 2 mib " . J'ai fait des recherches, on dit que ça vient du php.ini mais aucun changement quand j'ai modifié ce fichier. Merci !
Il est possible que tu modifies le mauvais php.ini. Essaye de taper ça dans ta console (si tu es sous Windows) : php -i|find/i"configuration file" Et il va te dire où est ton vrai php.ini
Merci beaucoup pour tes tutoriels !!!! Je sais pas si c'est en rapport avec l'accélération des pages mais si on va sur le site de grafikart, la page ne s'actualise pas mais change d'url et le temps de chargement est rapide. Comment cela est-il possible ?
Bonjour Lior . A quoi ça sert d'avoir un cache en base de donnée ?. du point de vu performance çà donne quoi ?. Merci encore pour tes vidéos et ta bonne humeur
Salut Lior ! Merci infiniment pour toutes tes vidéos que je suis assidûment. Un petit cours sur la préparation de la mise en ligne en production d'une application symfony ça serait possible ? Ou un cours sur l'utilisation du composant symfony Http Client ? Merci encore pour ton travail et ta bonne humeur, ça fait bien plaisir !
Pour la mise en prod d'une application Symfony tu as un bon tuto chez Grafikart (cherche "grafikart hébergement symfony") ou à la fin de mes deux formations, on met toujours en ligne :)
Pour info, Doctrine a ses propres outils pour le cache, donc n'utilisez pas le "cache.app" avec Doctrine, utilisez plutôt les fonctionnalités de "Result Cache" de Doctrine. RTFM :D
@@LiorCHAMLA Merci pour la vidéo ! J'ai la même question, je comprend pas comment faire avec un repository (ou tout autre paramètre). J'ai toujours un "undefined variable repository" lorsque j'essaie de l'appeler dans la fonction invoquée par l'objet $cache. J'ai essayé d'ajouter le repository (ainsi qu'un serializer) aux paramètres après $item, mais j'ai une erreur qui me dit que je n'ai renseigné qu'un paramètre sur 3 lors de l'appel de la fonction ("j'ai renseigné" l'item par injection de dépendances mais pas le repo ni le serializer). J'ai réussi à passer le repository et le serializer en paramètre comme suit, mais cette fois ci, c'est l'item, que symfony me réclame : $usersJson = $cache->get( "usersJsonCache", (function ($repo, $serializer, ItemInterface $item){ $item->expiresAfter(10); $usersEntity = $repo->findByCustomer($this->getUser()); ... // (plein de calculs) return $usersJson; })($repo, $serializer) // passage du repo et du serializer en paramètre, mais pas possible de passer l'item puisque renseigné par injection de dépendance ); J'ai l'impression que l'injection de dépendances ne se fait que si je ne renseigne aucun paramètre manuellement. J'ai essayé de récupérer l'item en amont et de le passer en paramètre aussi, mais j'ai une autre erreur relative a l'item lui même donc je suppose que c'est pas la solution Une idée de la solution SVP ?
@@fredericmalard8236 Bah oui, ça vient de ta méconnaissance de comment marchent les fonctions anonymes :D La fonction que tu créés ne peut recevoir qu'un seul paramètre : l'ItemInterface $item. Par contre, tu peux faire ça : $usersJson = $cache->get('usersJsonCache', function(ItemInterface $item) use ($repo, $serializer) { .... });
Salut; j'aimerais savoir comment déployer son application symfony. j'ai déjà mis mon projet sur le serveur , ainsi que ma base de données, mais je rencontre des problèmes
Lior, une vidéo dans laquelle on fait des appel API-REST déjà fonctionel avec symfony. Par exemple en node avec la fetch methode qui permet de faire un appel API-REST .Merci
Grand Merci @Lior pour les tutos. J'attends avec impatience la nouvelle série de symfony, exactement j'attend une vidéo sur l'intégration admin template dans un projet symfony une autre fois Grand merci :)
Bonne vidéo comme d'hab' ! Mais du coup quand on travaille beaucoup avec la BDD, mieux vaut ne pas utiliser le cache pour afficher une liste d'enregistrement ( qui met pas mal de temps ) puisque l'utilisateur peut ajouter/modifier/supprimer, enfin faire des changements dans la BDD à ce niveau. Donc le cache serait pas utile dans ce cas non ? Et sinon tu redeviens actif sur ta chaîne ! J'espère que ça va continuer 😁
Non si tu invalides le cache, lorsqu’une personne va essayer d’obtenir la liste ça va faire à nouveau 2 secondes avec la nouvelle liste mise à jour et ainsi de suite pour chaque mise à jour.
@@TheDougeman On pourrait imaginer qu'on mette la liste en cache quand on l'affiche et qu'on la garde telle quelle dans le cache avec le nom "liste-enregistrements", et au moment où l'admin (ou un utilisateur) créé ou modifie ou supprime un enregistrement, on peut invalider l'item qui porte le nom "liste-enregistrements" dans le cache :)
@@LiorCHAMLA Aaah ouais je vois ! Donc ça signifie que dans tous les contrôleurs ( et fonctions de service ) qui touchent à la BDD je dois m'occuper d'invalider le cache ? 😅
Merci Mr LIOR !! Encore une fois vous nous gâter !! Petite question ( ou petit spoil ) , vous nous préparez un prochain cours ?? Je demande ça, je demande rien :) Au passage, la présentation de vos vidéos sont top !
@Duo Kal si ça t'intéresse, t'as plein de cours, comme le cours de mathieu nebra sur openclassrooms gratuit mais textuel, ou des cours de C++ sur udemy, vidéo mais payants
Merci pour ce tutoriel très simple et très instructif, mais j'aimerais savoir quel sont les tutoriels permettant d'avoir un cache qui se met à jour comme tu le dis à 18:10 min, parce qu'après avoir fouillé un peu partout j'ai pas trouvé grand chose de très concluant mis à part le HTTP Etag et sa methode LastModified() que je ne vois pas comment appliquer avec ton tutoriel. Pour toi, quelle serai la solution la plus appropriée ?
Bah imaginons tu mets à jour un article. Tu le trouves dans le cache et tu l'invalides ou carrément tu le remet en cache :)
Merci Lior.
Content de voir que tu te mets à faire un format de vidéo plus "court" des petits sujets comme celui-ci !
Merci à toi de me suivre !
Merci Lior pour cette vidéo instructive. Toujours au top ;)
Je me demandais comment tu arrivais à n'avoir que les 2 méthodes de l'objet $cache à savoir get() et delete() ? Il me semblait que php intelephense faisait le travail mais de mon côté j'ai toutes les fonctions de php à la place qui s'affichent...
Dans les options de VSCode (CTRL + virgule), tu cherches "suggest basic" et tu désactives l'option "PHP Suggest Basic" ;)
@@LiorCHAMLA Merci beaucoup Lior ;)
Salut Lior, c'est peut-être pas le bon endroit pour poster ça mais j'ai un soucis avec l'upload de fichier. J'ai un message du genre " the file is too large. allowed maximum size is 2 mib " . J'ai fait des recherches, on dit que ça vient du php.ini mais aucun changement quand j'ai modifié ce fichier. Merci !
Il est possible que tu modifies le mauvais php.ini.
Essaye de taper ça dans ta console (si tu es sous Windows) : php -i|find/i"configuration file"
Et il va te dire où est ton vrai php.ini
@@LiorCHAMLA Thank you so much Lior. Tu es le meilleur, ça marche 😁
Merci beaucoup pour tes tutoriels !!!!
Je sais pas si c'est en rapport avec l'accélération des pages mais si on va sur le site de grafikart, la page ne s'actualise pas mais change d'url et le temps de chargement est rapide. Comment cela est-il possible ?
Il utilise Turbolinks :)
@@LiorCHAMLA merci beaucoup Lior ! Continu comme ça !
Bonjour Lior .
A quoi ça sert d'avoir un cache en base de donnée ?. du point de vu performance çà donne quoi ?. Merci encore pour tes vidéos et ta bonne humeur
Salut Lior ! Merci infiniment pour toutes tes vidéos que je suis assidûment. Un petit cours sur la préparation de la mise en ligne en production d'une application symfony ça serait possible ? Ou un cours sur l'utilisation du composant symfony Http Client ? Merci encore pour ton travail et ta bonne humeur, ça fait bien plaisir !
Pour la mise en prod d'une application Symfony tu as un bon tuto chez Grafikart (cherche "grafikart hébergement symfony") ou à la fin de mes deux formations, on met toujours en ligne :)
@@LiorCHAMLA Merci bien Lior !! Et continue à nous régaler :-)
Super merci beaucoup pour tes vidéos ! Ça marche aussi avec le repository ?
Je ne comprend pas bien la question ? Tu veux mettre le résultat d'un "findAll" dans le cache ? Tu peux mettre CE QUE TU VEUX dans le cache :)
Pour info, Doctrine a ses propres outils pour le cache, donc n'utilisez pas le "cache.app" avec Doctrine, utilisez plutôt les fonctionnalités de "Result Cache" de Doctrine. RTFM :D
@@LiorCHAMLA Merci pour la vidéo ! J'ai la même question, je comprend pas comment faire avec un repository (ou tout autre paramètre). J'ai toujours un "undefined variable repository" lorsque j'essaie de l'appeler dans la fonction invoquée par l'objet $cache. J'ai essayé d'ajouter le repository (ainsi qu'un serializer) aux paramètres après $item, mais j'ai une erreur qui me dit que je n'ai renseigné qu'un paramètre sur 3 lors de l'appel de la fonction ("j'ai renseigné" l'item par injection de dépendances mais pas le repo ni le serializer). J'ai réussi à passer le repository et le serializer en paramètre comme suit, mais cette fois ci, c'est l'item, que symfony me réclame :
$usersJson = $cache->get(
"usersJsonCache",
(function ($repo, $serializer, ItemInterface $item){
$item->expiresAfter(10);
$usersEntity = $repo->findByCustomer($this->getUser());
... // (plein de calculs)
return $usersJson;
})($repo, $serializer) // passage du repo et du serializer en paramètre, mais pas possible de passer l'item puisque renseigné par injection de dépendance
);
J'ai l'impression que l'injection de dépendances ne se fait que si je ne renseigne aucun paramètre manuellement. J'ai essayé de récupérer l'item en amont et de le passer en paramètre aussi, mais j'ai une autre erreur relative a l'item lui même donc je suppose que c'est pas la solution
Une idée de la solution SVP ?
@@fredericmalard8236 Bah oui, ça vient de ta méconnaissance de comment marchent les fonctions anonymes :D
La fonction que tu créés ne peut recevoir qu'un seul paramètre : l'ItemInterface $item. Par contre, tu peux faire ça :
$usersJson = $cache->get('usersJsonCache', function(ItemInterface $item) use ($repo, $serializer) {
....
});
@@LiorCHAMLA ah d'accord super :D
Merci beaucoup !
Salut; j'aimerais savoir comment déployer son application symfony. j'ai déjà mis mon projet sur le serveur , ainsi que ma base de données, mais je rencontre des problèmes
Regarde cette belle vidéo de Grafikart sur le sujet : th-cam.com/video/AAap9qRHgIk/w-d-xo.html
Pense tu faire des tutos sur Golang ? Vu que ton site est visiblement codé en Go.
Je n'ai jamais tapé une seule ligne de Go :)
Lior, une vidéo dans laquelle on fait des appel API-REST déjà fonctionel avec symfony. Par exemple en node avec la fetch methode qui permet de faire un appel API-REST
.Merci
J'ai une formation entière de 15 heures sur ce sujet sur ma plateforme learn.web-develop.me ! :)
Omg, comparer le cache avec un frigo, c'était très audacieux ! Mais c'est une super présentation :)
Attend, c'était un commentaire positif ou je vois flou là ?! :D
@@LiorCHAMLA C'est bon, je ne suis pas "si" méchant que ça quand même ? :p
Salut Lior. Les données de caches de Symfony sont stocké où? C'est différent par rapport à Redis ? Merçi
Par défaut c'est dans un fichier mais tu peux configurer pour que ça stock sur Redis ou dans d'autre systèmes de stockage :
Grand Merci @Lior pour les tutos.
J'attends avec impatience la nouvelle série de symfony, exactement j'attend une vidéo sur l'intégration admin template dans un projet symfony
une autre fois Grand merci :)
De rien merci à toi :)
Merci :)
Je sais pas si tu connais sylius qui fonctionne avec symfony ?
J'ai regardé genre 1h :D
@@LiorCHAMLA tu en penses quoi ?
@@mentalresistance174 absolument rien j'ai pas du tout étudié le truc
@@LiorCHAMLA ok 😂, de toutes façons je continue à te suivre je verrai bien si tu aborde le sujet un jour 😉.
Merci et bonne continuation.
Toujours des explications au top ! Merci encore !
Merci beaucoup ! Faut partager
Bonne vidéo comme d'hab' !
Mais du coup quand on travaille beaucoup avec la BDD, mieux vaut ne pas utiliser le cache pour afficher une liste d'enregistrement ( qui met pas mal de temps ) puisque l'utilisateur peut ajouter/modifier/supprimer, enfin faire des changements dans la BDD à ce niveau. Donc le cache serait pas utile dans ce cas non ?
Et sinon tu redeviens actif sur ta chaîne ! J'espère que ça va continuer 😁
Tu peux invalider le cache lorsqu’il y a des modifications.
@@TheDougeman Ouais mais du coup pour voir si il y a des modifications il faut bien lancer la fonction et comparer les résultats non ?
Non si tu invalides le cache, lorsqu’une personne va essayer d’obtenir la liste ça va faire à nouveau 2 secondes avec la nouvelle liste mise à jour et ainsi de suite pour chaque mise à jour.
@@TheDougeman On pourrait imaginer qu'on mette la liste en cache quand on l'affiche et qu'on la garde telle quelle dans le cache avec le nom "liste-enregistrements", et au moment où l'admin (ou un utilisateur) créé ou modifie ou supprime un enregistrement, on peut invalider l'item qui porte le nom "liste-enregistrements" dans le cache :)
@@LiorCHAMLA Aaah ouais je vois ! Donc ça signifie que dans tous les contrôleurs ( et fonctions de service ) qui touchent à la BDD je dois m'occuper d'invalider le cache ? 😅
Super bien expliqué ! Merci pour le partage =)
De rien merci à toi :)
Super M. Lior Chamla, tu m'aide beaucoup
Tant mieux c'est fait pour ça !
Merci encore bro pour tes vidéos enrichissantes. est-il possible de nous faire une vidéo sur les voters ?
Merci d'avance.
Pourquoi pas, ça pourrait être intéressant :)
Merci Mr LIOR !! Encore une fois vous nous gâter !! Petite question ( ou petit spoil ) , vous nous préparez un prochain cours ?? Je demande ça, je demande rien :)
Au passage, la présentation de vos vidéos sont top !
Y'a un cours très "petit" qui va sortir sur ma plateforme et qui concerne les principes SOLID. Merci pour ton commentaire en tout cas :)
Simple et efficace 😍
Merci :)
Bonjour Bro.
Merci pour cette superbe nouvelle vidéo. 👏👏👏❤
Merci à toi bro !
Merci beaucoup chef pour cette vidéo.
De rien, n'hésites pas à partager ! Merci à toi pour ton visionnage ;)
Svp les classe en c++😞
J'ai pas fait de C++ depuis ma deuxième année en cours y a 10 ans :D
@Duo Kal si ça t'intéresse, t'as plein de cours, comme le cours de mathieu nebra sur openclassrooms gratuit mais textuel, ou des cours de C++ sur udemy, vidéo mais payants
Thanks you Lior
De rien merci à toi :)
Je m'abonne
Bienvenue ! :)
Hello, si je peux me permettre, c'est quand même dommage que le nom de ta plateforme ne soit pas intuitif, pour s'en rappeler c'est compliqué
Merci pour le retour, je vais y réfléchir
Si toi aussi tu veux indeter son putin de crochet ligne 16.... :'D
Hahaha :p
bravo
Merci beaucoup :)
Si toi aussi tu es là, laisse un pouce bleu