 Bonjour à tous, merci d'être venus, avant de commencer, j'aimerais vous inviter à regarder la conférence en live sur vos devices, si vous voulez être pour avoir plus de confort. Donc sur pastis AQLT qui veut dire à qui le dit-tu, c'est un petit jeu de mots. Donc pour l'introduction, moi je suis développeur backend chez BIP, ça fait juste deux ans que j'ai intégré l'équipe et pour l'instant tout se passe bien. Donc vous pouvez me suivre sur les réseaux sociaux, sur Twitter ou sur mon blog que j'ai lancé il y a un an, je publie de temps en temps des articles sur la sécurité, sur des petits reviews de code, enfin des trucs, voilà, que ça pourrait intéresser, ça pourrait peut-être vous intéresser. Donc le sujet de la conférence c'est WordPress et Git, comment déployer un projet sur plusieurs environnements. Donc on va commencer par voir ce qu'est Git, je vais essayer d'aller rapidement, j'espère que vous avez déjà quelques petites bases parce que je ne peux pas faire tout le détail en 20 minutes, c'est trop court. Alors les principales fonctionnalités, on va voir ça ensemble maintenant, tout d'abord un petit workflow, il faut imaginer que Git c'est un outil qui permet de mettre en place les modifications de toutes les personnes qui sont sur un projet, donc on a un serveur principal qui va être la remote et après chaque personne va venir se greffer dessus pour dire voilà moi j'envoie mes modifications et ça va renvoyer comme un peu à la Facebook des push aux autres personnes qui vont dire voilà il y a eu des modifications récupérées, en gros basiquement c'est ça le fonctionnement de Git. Donc moi j'ai retenu trois fonctionnalités principales pour Git, la première c'est que c'est un outil de versioning, donc qu'est ce que ça vous tire, qu'est ce que ça veut dire outil de versioning, pour moi c'est principalement quelque chose qui permet de mettre un historique dans l'applicatif qui va être mis en place enfin sur le projet, donc tout bêtement on est capable de dire à l'instant T voilà il y a eu un screenshot du comment dire de l'applicatif et une semaine après on a réalisé des modifications c'est une autre version, donc voilà un historique et ça permet de faire aussi des comparaisons de code par rapport entre deux versions on peut dire voilà il y a eu telle et telle modification sur un fichier, deux fichiers, trois fichiers enfin voilà j'estime aussi qu'on peut faire des sauvegarde c'est à prendre entrecôtes bien évidemment puisque c'est pas la principale fonctionnalité mais imaginons il se passe quelque chose sur notre site on est capable d'un claquement de noix hop on remet en place un screenshot de l'applicatif donc voilà c'est plutôt pratique on peut faire une gestion des évolutions c'est à dire quand on a l'applicatif qui se développe de point de vue linéaire on va créer des branches qui vont correspond à des évolutions donc on n'est pas obligé de les mettre dans l'applicatif qui va être par exemple sur le site en production et attendre donc de les développer sur des sites sur des sites de développement et de les tester et quand tout va bien hop on les met dans l'applicatif et on peut déployer ça en production par exemple c'est plutôt étonnant mais moi j'estime aussi que c'est un outil de sécurité pourquoi imaginons se faire qu'à notre site on a des fichiers qui ont été rajoutés des fichiers malicieux en général on sait pas trop ce qui a été fait quand comment et ben là il y a avec deux commandes tout simplement un guide clean tirer df et un guide checkout tirer tirer point on va supprimer tout ce qui a pu être rajouté et ce qui ne fait pas partie de l'applicatif et que nous on aurait rajouté directement dans le projet guide j'ai oublié de préciser aussi qu'avec un guide status on peut voir aussi les fichiers qui auraient pu être rajoutés malicieusement la deuxième feature c'est un outil collaboratif pourquoi parce qu'on peut travailler à plusieurs tout bêtement comme je le montrais de tout à l'heure il ya un remote principal tout le monde peut avoir des remodes en local et effectuer les modifications pas forcément les envoyer sur le serveur principal donc il peut attendre et voilà donc ça permet de travailler à plusieurs on a dans ce cas là une édition pratiquement quasi simultanée comme je l'ai dit quand les modifications sont envoyées sur le serveur principal il y a une sorte de de notification comme on va dire à la facebook ou sur sur les smartphones avec twitter on reçoit un poche qui nous dit et il y a eu des modifications liberatois de les récupérer c'est un peu le même principe et quand il se passe des bêtises qui sont faites sur les sites on peut aussi taper sur les doigts des développeurs parce qu'on sait exactement qui a fait quoi donc quand le site crash en prod on sait que c'est maxime qui a mis un code dégueulasse à la ligne 55 on s'arrive jamais j'espère c'est aussi un petit déploiement et ça c'est un peu plus nouveau on va dire et c'est ce que je vais essayer de vous démontrer aujourd'hui pourquoi parce que comme on l'a pu le voir précédemment on maîtrise le code c'est à dire que pour un ce que j'appelle screenshot pour une version de l'applicatif quand il est en production on sait exactement ce qu'il y a ce moment là sur notre site c'est aussi comme ça qu'on peut savoir si on s'est fait raquer ou pas et c'est rapide et facile à mettre en place parce que quand on est sur le serveur de production pour déployer une nouvelle version on fait juste un guide pool vous attendiez à autre chose on va rentrer dans le livre du sujet comment configurer et donc mettre en place et utiliser justement la gestion de ces multiserveurs fin de ces multis environnement donc j'ai retenu deux méthodes la première qui est capistrano qui est un logiciel une libraire qu'on va installer sur notre serveur et la deuxième qui est une méthode bapi qu'on met en place qu'on appelle le wep config mutualisé revenons à capistrano imaginons on a un environnement de dev une branche de dev on a des modifications qui sont dans une branche là je l'ai appelé my commit c'est pas du tout logique enfin bref on va la mettre sur le dev automatiquement derrière on peut mettre en place un script qui va envoyer les modifications sur le serveur de dev et peut-être si on est un peu plus avancé dans la configuration de serveur lancé des commandes avec un script bash par exemple compositeur ou d'autres d'autres libraires qu'on aurait pu mettre en place sur le sur le serveur donc on peut faire la même chose sur l'environnement de calif c'est le même schéma ou alors un serveur ne prépone malheureusement les prérequis pour installer capistrano c'est qu'il faut guide 1.8 imperativement ou supérieur avoir rubis la librairie rubis d'installer sur le serveur et aussi un accès sages pour pouvoir manipuler plus facilement justement ce logiciel se composant sur le serveur la deuxième méthode qu'on utilise à biapi qui est plus flexible parce que du coup on n'a pas autant de prérequis c'est le wep config mutualisé et se traduit par plusieurs étapes donc la première c'est l'identification du serveur pour savoir justement quel wep config on va mettre en place le wep config c'est ce que j'ai le wep config c'est ce que j'ai appelé le wep config dédié qui va être bien spécifique à chaque environnement et puis pour la suite pour justement au niveau applicatif dire lequel on va charger on a une sorte de wep config que j'ai appel le wep config mutualisé vous pouvez retrouver les sources sur sur notre githem pour identifier le serveur quand on a accès à la racine du serveur ce qui n'est pas toujours le cas donc c'est à dire un courant dessus avant le public html ou le wwe ou le htdocs ou j'en passe on va créer un petit fichier qu'on appelle comme on veut nous en l'occurrence on appelle enf tirer dev donc avec une commande qui s'appelle touche enf et on va le créer on va le on va le mettre à la racine du serveur donc ça c'est la première étape sur le serveur on va identifier ce serveur on va lui dire voilà toi t'es l'environnement de devs quand on n'a pas accès justement à la racine du serveur on va mettre ça dans le projet donc il ya des petites nuances à prendre en considération donc la première on va créer le fichier de la même manière dans le projet à la racine du projet et la deuxième étape c'est ajouter ce fichier au guitignor pourquoi parce que c'est quelque chose qui est c'est un fichier qui est directement représentatif de l'environnement et pas de l'applicatif donc ça sert à rien de se dire dans l'applicatif on va avoir on veut versionner ce fichier et du coup sur tous les environnements l'avoir non c'est faux nous on veut l'avoir que sur l'environnement de devs la deuxième étape c'était la création d'un wp config dédié donc maintenant qu'on a identifié nos serveurs on veut mettre en place un wp config qui correspond juste à notre environnement donc on met à la racine du projet et dedans on peut spécifier plusieurs choses donc en l'occurrence sur un environnement de devs on a envie d'avoir par exemple la fenêtre acf donc on va on va pas mettre en pardon l'inverse si on est sur un serveur de qualif on ne veut pas qu'acf soit fiché du coup on va pouvoir mettre dans ce fichier wp config une variable par exemple acf lite à trou ce qui veut dire qu'on va masquer acf pour que le client par exemple n'est pas accès à cf et casse notre site mais on peut mettre d'autres variables comme qu'on est sur le dev on veut par exemple mettre le wp des bugs à trou ce qui est plutôt pratique sur le dev mais pas sur la qualif pour détecter les les dans la donc la troisième méthode la troisième étape c'est la détection du du wp config qu'on va utiliser selon les environnements donc on peut le faire de deux sortes différentes la première c'est par la détection des url je suis pas très fan parce que on maîtrise jamais l'url on sait jamais ce qu'il y a dedans et une méthode qui est beaucoup plus simple qui consiste justement à se baser sur la sur le fichier qu'on aurait pu créer préalablement donc là c'est quand on a accès à la racine de serveur quand on n'a pas accès à la racine de serveur c'est la même chose mais on décale d'un grand bon c'est juste un grand fichier qui peut faire peur mais il n'y a rien d'extraordinaire donc à ce moment là on charge le le wp config dédié qu'on aurait pu créer préalablement l'utilisation donc maintenant qu'on a vu la configuration notre applicatif et notre serveur voyons voir comment on va l'utiliser première nuance que j'aimerais mettre en avant quand on utilise guide il faut bien comprendre qu'il y a deux étapes il y a la livraison et le déploiement ce qui est deux choses différentes moi souvent je fais une métaphore avec ça c'est le limar de pizza s'il arrive chez vous et qu'il sonne mais que vous lui ouvrez pas la porte il se passe rien ça c'est la livraison le déploiement c'est d'ouvrir la porte et bien le payer si vous voulez ou pas ça c'est autre chose mais à ce moment là vous récupérer la pizza et tout le monde est content c'est un peu la même chose sur un serveur de prendre vous pouvez envoyer les modifications sur la branche master par exemple donc vous les poucher sur le serveur mais si en local vous les récupérez pas pour pour mettre en place l'applicatif il se passera rien la livraison donc voyons voir maintenant la livraison comment se déroule on revient sur notre exemple concret de tout à l'heure qu'on avait trois branches qui correspond à trois environnement donc imaginons qu'on a une branche de feature où on a développé des choses qui sont des nouvelles fonctionnalités qu'on voudrait d'abord tester puis après mettre en place sur notre production donc tout d'abord on récupère les modifications toujours avant d'envoyer des modifications à nos collègues ou sur le serveur de le guide donc on va effectuer un guide pool et on va se mettre sur la branche qui nous intéresse moi j'ai pris là l'exemple de la calife et la branche de calife et la branche dans laquelle on a travaillé on va la merger donc là c'est l'équivalent c'est la livraison lorsqu'on va faire le guide push là tout le monde aura l'instant des de l'applicatif lorsqu'on a mergé ces modifications dans la branche calife mais sur le serveur de calife on n'a pas encore les les modifications en live c'est là que rentre en compte du coup le déploiement et il y a plusieurs manières de déployer la première la plus facile avec ssh quand on a un accès ssh au serveur et que guide est installé bien évidemment on vient se connecter avec ssh username appostname et derrière on se met dans le dossier du projet donc c'est des publics html ou ww peu importe et on fait un guide pool c'est aussi simple que ça y a rien d'autre à faire pour le déploiement un claquement de doigt c'est fini mais on n'a pas toujours l'accès ssh du coup quand on a que guide d'installer par exemple on peut installer un petit plugin ou extension à la française dans notre applicatif dans notre presse et on va pouvoir justement mettre en place des commandes qu'on aurait peut-être pas eu accès sans l'accès ssh donc là en l'occurrence un petit plugin s'appelle révisre qui permet de faire la gestion de guide donc toutes les commandes de masse guide pool guide push guide check out et qui permet aussi alternativement de faire la gestion de backup de beledé quand on a qu'un accès ftp sur notre serveur en l'occurrence là on a ni guide ni d'accès ssh la chose se course un peu parce que du coup en local on va devoir effectuer des commandes premièrement on peut faire une archive différentielle par l'archive entière l'archive entière c'est que pour un screenshot de notre applicatif ou une version on va devoir créer tous les fichiers donc c'est-à-dire que c'est ce zip qu'on va envoyer par ftp file zilla et autres logiciels sur le serveur pas très pratique la deuxième méthode consiste à faire une archive différentielle premièrement on va créer une archive qui va récupérer entre deux versions juste les fichiers qui ont été modifiés donc si on a effectué juste des modifications de css ça sert à rien de renvoyer tout l'applicatif on va envoyer que le fichier css mais ça nous on peut pas le savoir donc on lance la commande qui permet justement de générer le zip avec les modifications concerné par le déploiement de la nouvelle version deuxième étape c'est aussi vérifier qu'il n'y a pas eu des fichiers quand il est supprimé dans la nouvelle version de l'applicatif on a supprimé un plugin donc du coup quand on va vouloir le mettre en quand on va vouloir mettre en place l'applicatif sur notre serveur de production par exemple dans l'archive différentielle on n'aura que les nouveaux fichiers on n'aura pas les fichiers supprimés donc là en l'occurrence cette commande permet justement de mettre en avant les fichiers qui auraient pu être supprimé alternativement si on veut pas faire des commandes on peut se on peut localement utiliser déploie qui est un petit logiciel qui permet avec des configs bien spécifiques je vais pas aborder là de faire un peu la même chose mais de manière automatiquement on va appuyer sur une sorte de guide push qui va dire voilà envoie moi tout ce que j'ai en local mais sur tel environnement ou sur tel environnement et alternativement ce qui est en fait c'est le même service c'est déploie bot c'est un service en ligne où on va venir spécifier des environnements et lui dire met toi sur ce guide et t'écoutes telle branche comme ça quand il des modifications par exemple sur la branche de calife hop t'envoie sur la branche de calife j'aimerais finir avec une citation c'est il faut être bien sage ou bien borné pour ne rien changer à ses idées pourquoi je vous dis ça parce que souvent j'ai eu des remarques mais guide c'est nul mais guide c'est compliqué non non non faut juste suivre les bons tutos au début comme on dit prendre le corneau par les cornes et se dire voilà il y a plein de possibilités sécuriser son site faciliter les déploiements maîtriser le code sur l'environnement de production savoir exactement ce qui est sur notre salon de production demain le city crash en une seconde on redéploie tout le code aucun problème le seul inconvénient c'est qu'on n'a pas de gestion de bdd donc ça c'est à faire en parallèle mais voilà on maîtrise le code facilement donc je peux que vous conseiller à utiliser guide ou de le mettre en place et du coup si vous avez des questions des remarques des conseils n'hésitez pas je suis là pour ça bonjour merci bonjour merci à toi la question c'était vous mettez tout le folder wall pass ou seulement le thème travaillé la bonne question alors il y a maintenant on commence à utiliser compositeur donc du coup ce qu'on fait compositeur ce qu'on va mettre que les plugins ou les thèmes qu'on va déployer nous-mêmes tout le reste on laisse compositeur gérer actuellement dans nos méthodes de travail effectivement on va mettre aussi votre presse ce qui permet dans le cas où on se souviendrait plus de quelle version et sur quel environnement le pouvoir gérer justement cette version et l'avantage c'est si une mise à jour de represse alors je sais justement ça pollue les comites parce qu'on se retrouve avec justement plein de comites sur mise à jour de votre presse des choses comme ça qui n'ont pas vraiment de sens avec le projet ça a un sens directement avec le projet t'installer un plugin qui n'est pas compatible en 4.3 t'installer presque 4.3 qui fait quoi donc ça sert à rien d'utiliser guide dans ce cas là au moins sur la branche de dev je vais pouvoir avec une nouvelle branche avoir testé mon plugin et ma version 4.3 je teste tout est bon hop je la mets sur le dev ou sur la calife mon chef de projet et recette c'est cool ça marche op production ok c'est un petit inconvénient mais c'est aussi un avantage bonjour merci pour la présentation moi j'ai une question que sûrement d'autres se sont posés c'est comment gérer la base de données derrière parce que parfois on ajoute des champs cf ou autres alors pour les choix cf il faut prendre en considération nos choses c'est quels est fields les champs qui vont être créés depuis le bio sans on peut les exporter et le mettre dans l'applicatif donc à partir de là c'est dans guite on n'en parle plus le reste c'est la bdd moi je l'avare pas aujourd'hui parce que c'est autre chose c'est comment effectuer des sauvegards à la bdd donc demain si vous voulez vous faites une conférence là dessus c'était pas le sujet aujourd'hui concrètement nous on a des backups qui font des des des en comment dire un descript qui font des backups automatiquement ou toutes les semaines de nos bdd donc par rapport à ça on n'a pas de souci après ce que je peux vous conseiller c'est de vous retourner auprès de vos hébergeurs et de leur demander et au est ce que vous faites des mises à jour régulièrement parce que c'est pas quand le site y crash qu'il faut leur poser la question c'est trop tard et ça c'est le cas si vous êtes chez un hébergeur si vous êtes en auto hébergé par exemple et que vous gérez tout seul moi j'ai pas forcément les compétences pour vous donner de bons conseils oui maxime merci pour ta présentation juste une petite question sur l'utilisation de ton wp config mutu j'ai cru comprendre du coup qu'il y avait trois wp config par environnement en tout cas dans un cas où il y a trois environnements ça veut dire que par exemple les accès bases de données et tout ça sont marqués dans les trois les trois sont versionnés ça ça marche quand est certain que ton dépôt il est privé tout à fait ouais nous tous nos dépôts sont privés donc dans ce cas là personne peut avoir accès au dépôt guide et justement réutiliser ses identifiants et effectivement pour chaque environnement on a un wp config dédié et justement le fait de déclarer un wp config dédié c'est tout premièrement déclarer les les accès à la base de données mais aussi des variables alternatives d'accord mais ça veut dire faut pas qu'il y a un moment il y a une fausse manif qui rende public le dépôt bid bucket quoi oui enfin dans ce cas là c'est comme si tu supprémé un ordre presse et tu le comités tu vois c'est faut faire attention à ce que tu fais c'est c'est le c'est notre travail développeur de maîtriser notre notre coeur métier quoi mais bon pour remettre un dépôt public il faut quand même aller où sur l'interface et cliquer sur le bouton après il faut valider en rentrant ça se fait si quelqu'un est mal intentionné oui mais je pense pas qu'est de grouille c'est pas important ça donc du coup je voulais donner juste deux éléments de réponse sur les deux questions qui avaient eu juste avant la première qui était là là sur sur en bd wordpress et le répertoire wordpress dans son projet il ya une bonne pratique dans dans guite qui permet de déviter ça donc il est sous module donc il faut utiliser les sous modules sur guite pour pouvoir utiliser n'importe quelle version de wordpress à n'importe quel instant dans son projet en tout cas moi c'est la façon dont je le fais et ça me permet de revenir en arrière ou d'aller en avant d'utiliser une version particulière de de wordpress et la deuxième question sur les acf sur la sauvegarde sur la sauvegarde des bases de données alors j'utilise deploy bot pour le déploiement qui est un super outil qui est gratuit pour un ripot qui coûte dix dollars pour je crois un truc comme ça par mois pour pour cinq ripots et qui permet notamment d'automatiser tout un tas de choses avant un déploiement donc on peut lancer n'importe quel script sur un serveur et c'est super bien fait super pratique super facile à partir du moment on n'a rien accès au serveur en ssh voilà mais également en ftp je crois on peut faire des choses en ftp voilà c'était juste une petite précision sur ce qu'il y avait été dit avant avant du coup je vais juste rebondir sur le sub module je suis pas très fan je suis désolé mais pourquoi parce que tout simplement déjà les personnes qui vont ici à guite sont peut-être pas fans de guite de base donc si en plus on doit guiter le projet et en plus on doit le faire les sub modules et guiter aussi d'autres parties qui sont déjà dans notre projet ce qui veut dire qu'au final c'est bête mais on va se retrouver je grossis un peu le truc c'est qu'on aura trois guides dans un même guide et pour les personnes qui sont qui sont néofeats c'est un peu compliqué c'est une solution comme une autre mais moi je suis pas très fan et pour pour reprendre là sur deploy bot oui effectivement si on n'a plus d'un site ça coûte dix dollars ou plus peu importe je vous invite à aller voir le site mais sinon vous installez deploy sur votre machine et à deux trois commandes à savoir et hop c'est fini oui bonjour je vous par rapport à guite guite est une société commerciale et donc quand vous stocker sur guite vous stocker chez eux avez vous déjà essayé frais ma soft frais ma big pardon frais ma guite ça me ça me parle pas vraiment non on n'a pas mis ça en place on n'a jamais testé d'accord ok je parlais de github oui non jamais testé par contre effectivement il existe plusieurs enfin guite c'est une solution à mettre en place c'est pas c'est un logiciel à la base mais il y a différentes plateformes qui l'utilisent notamment big bucket ou guite hub donc il y a d'autres services encore que bon j'ai pas tout benchmark et bien évidemment mais après libre à vous de choisir ceux qui fonctionnent le mieux ceux qui demain ne vont plus exister parce que si vous avez mis tout votre code là bas ce serait dommage de tout perdre voilà oui autre chose on n'est pas obligé d'utiliser un service tiers on peut aussi avoir guite en l'avantage de quitte c'est qu'on peut quand on l'a en local on peut ou se synchroniser avec un remote à distance donc un serveur et un service du style beat bucket ou guite hub mais quand on est en local on gère aussi de la même manière que si on avait un serveur en local c'est-à-dire que les autres personnes peuvent venir aussi venir sur le sur le local ou sur un serveur qu'on a monté dans l'agence ou dans la société et voilà les personnes on n'a pas obligatoirement dépendant d'un service tiers bonjour bonjour alors juste avant de poser ma question du coup si t'as pour rebondir sur la question juste avant de ou mettre son serveur guite il y a aussi le auto héberger il y a guite lab on peut installer son propre serveur de guite qui gère les issues tout ça donc c'est pareil quette guite hub fait la même chose mais guite lab on peut l'auto héberger donc du coup il ya plus la question c'était cela de donc dans ton exemple c'est vraiment tu versionnes tout le projet wordpress qu'est ce que tu penses de versionner uniquement un thème un plugin alors je parle pour les trucs vraiment où tu as des infos le tréli à ton client parce que effectivement les plugins vont mieux les publier directement sur le pas smorg j'ai peur de j'ai peur de pas complètement saisir la question mais j'ai l'impression que ça s'arjoie à la question qui était présentement posée non dans le sens où effectivement on peut on peut mettre sur guite que les plugins qu'on a qu'on a réalisé nous même les plugins que je sais pas le différent qu'on voudrait mettre dans l'applicatif et le thème qu'on a réalisé mais le désavantage c'est que si demain ton site y crash tu dois tout remettre en place d'une ligne de commandes tu ne vas pas être capable de tout remettre en place oui non donc l'avantage de tout mettre c'est que une ligne de commande j'ai mis wordpress j'ai mis les plugins genre si il est thème bon à la limite c'est un problème que la bdd il faut je réactive pas non plus mais oui effectivement du coup plutôt que d'avoir un dépôt grand comme ça on a un grand comme ça mais ça change rien je sais pas si ça répond à la question mais oui en fait oui c'est vrai que c'était plus à des rapports d'échelle parce que quand je parle quand j'imagine un projet complet en fait c'est pas forcément sur un site mais sur un grappe multi-site avec 500 sites dessus et ça change alors oui quand la base de données fait 2 gigas ou 20 gigas c'est tout de suite beaucoup plus compliqué je comprends maintenant mieux la question effectivement ça peut faire peur de se dire on est en multi-site effectivement notre application si on guide tout ça peut être compliqué en fait non parce que c'est wordpress qui va gérer le multi-site mais du point de vue applicatif du point de vue code enfin du point de vue fichier c'est qu'un wordpress qui est en place sur le guide et derrière c'est le fait d'installer un multi-site qui va justement permettre d'avoir plusieurs sites donc la bdd on parle pas puisque les pas dans guide donc au final on consomme un multi-site ou pas on aura toujours un wordpress les plugins et les thèmes ça change rien au niveau grandeur ou du projet merci d'amien de strasbourg c'est une remarque et une question alors juste une remarque par rapport au sous-module c'est juste pour rappeler que sous-module c'est une pratique guide qui n'est plus recommandé parce qu'effectivement ça rejoint ce qu'utilisait ça rajoute de la complexité dans un dépôt mais surtout ça pose des problèmes de sécurité parce qu'on ne peut pas lier un tag et une version donnée d'un dépôt on doit mettre en place un commit précis pour le sous-module et donc si demain on met un plugin avec un commit précis si il y a des mises à jour de sécurité on passe totalement à côté et la question du coup qui va avec ça c'est j'utilise badrock et avec un start-up perso et du coup compositeur donc avec cette logique là de fichier d'environnement et de compositeur pour pouvoir aller plus rapidement sur les thèmes et les plugins mais il y a un problème dans la communauté wordpress c'est que pour beaucoup de plugins payants à part a cf c'est compliqué d'avoir accès à des zip qu'on puisse télécharger et installer automatiquement via compositeur donc je sais quelle solution vous aviez en fait que vous utilisez en interne pour pouvoir installer ces plugins payants qui nécessitent des licences donc les licences pour pouvoir les télécharger et les déployer du coup automatiquement sur les différents serveurs de production de staging ou de développement bonne question est ce que on est dans le cas de compositeur ou sans compositeur avec compositeur ok je suis pas expert en matière je vous propose plutôt d'aller voir clément boharie qui est à l'étage et qui est qui est justement à l'agence qui lui sera beaucoup mieux vous répondre je sais que donc nous on a mis en place un serveur sur lequel automatiquement on va télécharger nos plugins premium et de la même manière qu'on va ajouter depuis wep package list les sources gratuites on a fait la même chose mais sur un repository différent on va pas taper sur wep package list mais sur notre repository à nous on aura la liste de tous nos plugins premium c'est la même chose pour les thèmes premium pour la mise en place je ne saurais pas répondre plutôt pour le côté pratique c'est comme ça que ça marche dernière il y a une question juste deux secondes c'était juste pour rebondir rapidement sur votre question en fait non en fait on va pas versionner le dossier upload dans le cas des multi sites du coup si on a un multi site avec 50 sites en fait tout le dossier upload des médias qui peut prendre plusieurs dizaines de gigas de photos d'image de vidéos on va pas du tout le versionner en fait c'est beaucoup trop grand c'est pour ça qu'il y avait bonjour et merci pour la présentation je rejoins justement le dossier upload peut-être une solution une question même temps je suis assez néo feed dans guide pour l'instant nous ce qu'on fait donc on garde tout wordpress accepté les médias et pour transférer à base de données et du coup les médias on utilise migraines db pro pour les médias aussi et ma question c'est est ce qu'il était possible ce qui est possible et ou déconseillé conseiller ou déconseillé de justement versionner les fichiers médias de wordpress parce que maintenant au jour d'aujourd'hui ici je versionne tous les médias que j'ai demain le client il va utiliser des images et puis bah ma version de guide elle est différente donc est-ce que je fais bien de différencier le code des images ou est-ce que je dois mettre les images dans le guide avec je pense que tu as répondu déjà à la moitié de ta question dans le sens où je voulais savoir si c'était une bonne procédure en fait en quoi je te confie effectivement si tu vas guiter comment dire les médias c'est pas une bonne pratique dans le sens où wordpress un cms donc le but du client c'est qu'ils viennent et contribuent ils y mettent ce qu'ils veulent ce qu'ils veulent par exemple en partant de là effectivement guiter les médias tu vas te retrouver avec une panoplie de médias qui au final ont peut-être servi à rien donc nous on exclut justement le dossier upload et pour rejoindre ta question sur les bases de données quant à plusieurs environnements ce qui est simple de mettre en place c'est quand la contribution est effectuée par exemple sur la préprode si tu copies tes médias avec tu l'as remettus sur la prod la base de données tout ce que tu auras à faire dessus une fois que tu auras copié celle la préprode c'est un dbsr c'est à dire remplacer les anciennes url avec les nouvelles et pour ça je vous invite à aller voir mon site justement j'ai fait un article dessus ok super merci beaucoup merci merci merci