 Bonjour à tous, désolé pour le souci de franchement un élu et qui n'a pas l'air d'en souhaitant. Je vais vous présenter une méthode intéressante en tout. J'ai une idée, une méthode apéentissive d'été. Ça va faire moins de temps à coder, plus de temps à la page. En ce moment, j'aimerais que ce soit dans une page qu'il y a de plus. Et j'espère que ça ne vous plait pas à la page. Souvent, à la page, même. Donc, je vais parler d'une personne, je travaille chez Automatique. Qui ça, c'est, il y a des papes, il y a des semaines, il y a vraiment d'autres. On avait regardé le commentaire de l'arrivateur, toute la langue, toute Automatique. C'est très, vraiment sympa. Du coup, là, pour commencer, je ne l'espère pas. Est-ce qu'il y a des développeurs dans la salle ? Est-ce qu'il y a des chefs d'agent sur les gens qui gèrent les développeurs ? Très bien. Est-ce qu'il y a des développeurs qui sont venus avec le chef d'agent sur le projet de recherche ? Tant mieux. En fait, je vais vous donner une méthode pour faire une étape en temps. En fait, c'est ce que met le chef d'agent sur le chef d'agent. Ça, je crois qu'on ne connaît pas la méthode. Sinon, il faut le faire, il faut le faire. Alors, pour commencer, on va faire un petit jeu de rôle. Pour ça, il va avoir besoin de quelqu'un dans le public qui s'est venu en rejoindre sur scène. Est-ce qu'il y a d'autres groupes qui font du théâtre, par exemple ? C'est pas grave. C'est pas grave. Est-ce qu'il y a quelqu'un qui veut venir en rejoindre sur scène, s'il vous plaît, pour juste quelques phrases à échanger avec nous ? Je ne vois pas rien pour qu'il y ait. Et ne vous inquiétez pas, il va y avoir une deuxième part-là dans le monde d'agent sur scène. Donc, on va renouveler un rôle et récordir l'agent sur scène. On va faire le client, qui a une demande particulière. Donc, vous allez sûrement retrouver qu'on ne sait pas de situation. Évidemment, s'il y a une demande, je vais changer le placement de... Je te laisse commencer. Tu fais le relais de tuer. Bonjour, j'ai entendu dire que vous êtes le meilleur développeur mort presse. Qu'est-ce que vous avez fait à renseigner, du coup ? Excusez-vous. Je souhaite réaliser un site web. Pour promouvoir des livres. Moi, je suis voter. Un blogueur. Peut-être que j'ai déjà lu un de mes articles de blu avec de mes livres. En fait, il est en train d'entrevisser, ça ne marche pas. Alors, je suis voter. Je vais faire un site. Et je vais promouvoir mes livres. Peut-être que j'ai déjà lu un de mes livres. Je ne connais pas vos livres. Alors voilà, je veux pouvoir mettre en vie un listing de mes livres. Pour modifier la description de chaque livre, ajouter des images, pour les couvertures par exemple, et classer des livres par genre. La science fiction, il ne touche pas beaucoup de choses. Mais c'est possible. Alors voilà, je l'ai dit à partez. Et là, le client en train de dire, je vais mettre des livres sur mon site pour les classer. Tout de suite, dans le tête de développeur, vous vous dites, je ne sais pas si c'est... un de nos tests. Du coup, là dans le tête de développeur, vous vous dites, bah voilà, je vais faire un custom Mustang, je vais faire des textes de livre, vous réfléchissez déjà à ce que le client en train de dire. Donc, la question, c'est-ce que c'est possible, il arrive en presse, oui, bien sûr. Alors, vous pouvez me faire ça, mon nouveau livre, il sort de la point. Alors, du coup, ça se dit, que tout soit fait pour la sortie. Donc là, vous avez maintenant la contrainte de temps qui arrive. Ça commence à devenir un petit peu plus concrète dans votre tête. Ça ne marche pas, c'est pas vraiment évident. Allez, il faut que ça sorte quand je suis travaillé plus pour un zariste express. Et encore, j'ai pas dit c'était pour rire. Bon, en général, pour ce titre de demande, il faut plutôt compter un mois et demi. Je vais essayer de m'arranger pour planir, pour trouver les ressources nécessaires, pour pouvoir se terminer dans un mois. Par contre, je ne vous cache pas que le tarif d'urgence sera appliqué. Oui, pas de problème. Là, ce que l'on va faire, le projet d'acteur était parfait. Le projet, vous avez commencé à comprendre ce qu'il va falloir faire techniquement derrière. Et en plus, vous avez aussi l'application directe d'urgence en lui donnant un peu sur l'été. Donc, vous avez gagné pour lui dans sa tête, c'était un mois et demi, vous faites en un mois, donc vous avez gagné qu'un jour. Du coup, vous avez votre projet qui est en train de mérir dans le tête et vous avez besoin de l'application. Est-ce qu'il y a quelqu'un qui va bien mérir dans l'application ? Oui, je vais essayer de vous faire un petit duo pour expliquer un petit peu l'autre projet. Voilà, ça s'en va. Donc, s'en va, il va mérir dans l'application. Moi, je vais mérir. Voilà, c'est autre chose. Alors, un petit peu mal, ce projet, c'est d'un quoi ? Alors, je vais mérir un petit duo. En fait, je ne vais pas mérir un petit duo. Donc, je vais mérir mon petit duo. Alors, du coup, c'est un petit projet intéressant. Le duo, on crée un système personnalisé pour lister ces lignes. À la route, est-ce qu'il y a des flammes que tu vas donner ? Je ne sais pas. Donc, je vais mérir un autre délai. Un mois, tu penses ça ? Puis, c'est bien que j'ai besoin de toi sur d'autres projets. Tu penses pas que tu peux réduire ce délai ? Donc, là, j'ai la pression maintenant de ne pas durer le délai. Difficilement, tu sais, il faut passer pas mal de temps sur ce genre de projet. Et, car là, j'ai déjà vécu des lignes sur 15 jours. Là, c'est totalement pas trop. OK. Bon, écoute, c'est le poste du directeur technique dont on a parlé il n'y a pas de temps. Eh bien, c'est un sort de projet en deux semaines. Là, ce qu'on propose, c'est un projet qui est un parti tout court. Et en plus, si je le fais bien, ce projet, j'ai un autre job. Je suis bien bien sur le tableau. Le client est content de s'exprimer dans un mois et demi. Votre patron pense que c'est un armoire dans deux semaines pour le faire facilement. Et en plus, vous avez le poste à la carte. Parfait. Donc, je dois les filmer et on va passer à la démo de la méthode que je vais vous montrer. Qui vous permet d'avoir énormément de temps sur votre tableau. Là, on répond à l'exemple d'un client. OK. Donc, je vais lancer une petite démo en espérant qu'elle marche. Enfin, normalement, elle marche. La démonstration a sauvé sur le terminal mais sur l'interface que j'ai créée pour le terminal. Donc, je vais vous montrer une installation Wordpress dans la section Préguine qui nous permet d'avoir un appartement d'ouvrir des titelettes Préguines et d'y arriver. Donc, je vais créer un nouveau répertoire pour mettre en livre que je l'avais dans l'exemple. C'est là qu'on va devoir créer le livre pour rester le livre. Donc, dans le terminal je vais juste vous dire que la démonstration je vais régler la démonstration et je vais vous montrer beaucoup de répertoire ici. C'est un peu interne. C'est un peu interne. Quand je fais le courant avec le verdict que j'ai fait un petit peu plus tard je ne suis pas sûr. Donc là, il y a des liens dans cette partie ici d'aujourd'hui. Et là, il y a des questions qui arrivent. Je ne sais pas si vous pouvez lire. Je ne sais pas si vous avez besoin. Donc, j'ai quelques questions on me dit, voilà, ça va être moi le nom de tout. Par défaut, j'ai dit moi une histoire parce que ça avait déjà le combien de textes. Donc, je n'ai rien changé. Je n'avais rien changé. J'ai des informations et ça se laisse avec ça. C'est ce que j'ai fait en général. Est-ce que je n'avais besoin de questions post-triques? Est-ce que je n'avais besoin de questions post-triques? Est-ce que j'ai besoin à 6, 7 heures de temps que j'ai besoin d'avoir un verdict différent sur le front pour les livres? Du coup, oui. Taxonomie. Pour le coup, je ne vais pas le faire mais là, j'ai une question à ce que je veux faire des changements. Donc, j'appuie sur l'entrée et regardez bien en haut à droite. Vous allez voir ce qu'il y a de fabriqué dans le code. J'ai tous les fichiers qui ont été créés en quelques secondes à peine. Je vais prendre la rentrée quelques questions. Donc, plutôt que de faire tous les fichiers dont j'ai besoin, j'ai les complets d'ici. J'ai bien mon fichier principal, j'ai bien mon équipage, j'ai les impôts. Donc, j'ai un peu d'impact qui marche. On peut le voir, on peut aller rafraîcher la page ici. J'ai bien un petit peu d'impôt qui m'a activé, qui vient créer. Si je l'active, j'ai bien mes bouts qui apparaissent ici. Donc, j'ai un peu d'impact qui marche. C'est cool, non ? Moi, je trouve c'est cool. Et c'est cool, parce que le code, il a été généré à la volée et donc, le contenu des fichiers a été plus important. Je veux dire, le contenu des informations j'avais activées dans le questionnaire que j'ai rendu dans le terminal. Par exemple, si je fais ce fichier là, on peut voir ici que j'ai bien le nom de mon plugin, et si je pleure dans le code, je vais faire la classe, elle récupère bien le nom de mon plugin, un plugin underscore, etc. Et qu'on se prend pareil. Donc, en fait, tout mon code, il a bien refli toutes les informations de mon terminal. Alors, pour ça, c'est que si vous avez un petit peu de travail avec un dossier sur le circuit, par exemple, vous avez votre framework, vous le récupérer, qui l'utilise toujours, les bonnes fonctions, les bonnes fonctions, les bonnes fonctions, alors que là, tout est personalisé, le code est vraiment son concentre, ça aide les autres à rien à la voler. Est-ce que c'est une potion avec un bouton ou pas ? J'utilise un bouton, c'est pas assez faite de bonnes fonctions, c'est pas assez faite de bonnes fonctions, c'est pas assez faite de bonnes fonctions. Donc, si je récapitule, on utilise des préfices, on utilise des valeurs customes à tous les points de vue et qui fait, par exemple, des inclusions conditionnelles. Est-ce qu'on va utiliser le mieux au nom des templates ? C'est qu'il y aura certains chiffres qui seront ajoutés dans les cartons ou qui resteront bas. Et tout est basé sur le format dans le cas d'alternateur. Donc, je vais vous montrer comment je fais ce système-là. Donc, vous, avec un thème, vous pouvez le faire aussi avec un thème. Vous allez le faire. Je vais le replacer dans le concil des thèmes. Là, je vais créer un bouton pour le voir comme des listes. Donc, je vais le faire. Donc, là, je dois pas gratter parce que c'est la pente qui nous intéresse. Je vais te redoubler les thèmes. Vous parlez toujours de l'autre projet du thème, le nom du projet, les informations sur les compteurs, les informations sur le sas. Je vais le faire avec changement. Donc, j'ai un thème qui crée si je retourne ici que je vais voir les thèmes, et bien, mon thème qui crée. Donc, là, j'ai créé un thème dans 2 minutes. C'est puissant et c'est super cool. Donc, la question, c'est quoi de quoi ? C'est tout. Alors, je vais vous expliquer un petit peu ce que c'est. C'est un pass-run. Ça permet de faire des tâches d'une manière automatisée. Et le truc qui intéresse c'est que c'est pas le seul. Il y a un truc qui est accueilli. Mais Run, c'est un des seuls qui propose le project Scaffolding. Donc, il permet de faire de l'agiste pour le projet. Run est basé sur touch.is. Alors, en soi, on s'en fout un peu. Mais le point important de touch.is c'est que ça permet d'utiliser le JavaScript en 2 heures du navigateur. Là, qu'est-ce que j'ai fait ? J'ai juste joué un petit peu le terminal et en fait, le terminal m'a sorti des documents gargés via le JavaScript. Tout c'est le JavaScript qui a créé tous ces documents. Et je ne suis pas du tout passé par le navigateur. Je n'étais pas dans pro pour générer ce code Donc, pour installer Node.js, c'est super simple. Vous allez sur le site et vous suivez les indications. Vous allez voir si vous suivez le command sur la table dans le terminal. Ça va très vite. De toute façon, il n'y a rien de compliqué. L'intérêt de Node.js c'est qu'il y a des paquets. En fait, on appelle ça des adogs. C'est comme un petit peu des adogs dans un livre public vous rajouter des fonctionnalités à compte. C'est un exemple de l'intérêt de Node.js. Donc, pouvoir installer Chrome je vous ai dit qu'il n'y a plus que de contenu à taper. C'est pas la peine de remarquer que les installs sont disponibles juste après. Mais on profite avec ça dans le terminal et vous avez Chrome qui installe. Alors, pour tester, il faut voir si ça fonctionne bien. Il faut juste c'est le command de la table qui va vous dire si c'est bien installer. Si vous voyez ça, c'est que Chrome est bien installer. Si vous voulez vous voir un exemple d'alors c'est beaucoup d'adjustement. Alors, maintenant, on arrive à ce qui m'intéresse c'est grotinit. C'est grotinit c'est pour la gestion de projet. C'est ça qui apparaît en fait de dire voilà, j'ai un dossier dans lequel je mets un modèle de plugin ou un modèle système que je vais utiliser. C'est un peu ce que j'ai fait. Donc, j'avais mon dossier avec un côté en fait un plugin un petit peu de base un petit peu de frais à boire un plugin. Et du coup le fait d'avoir ce projet dans un dossier le terminal va faire une espèce de COVID net et va relancer dans un autre dossier et dis-moi les fichiers dont j'ai besoin en les ayant retraité par d'ailleurs. Donc grotinit c'est vraiment le truc intéressant ici. Donc pour installer grotinit c'est ça vous allez, une fois vous allez installer dpn vous avez un petit peu de monde là et pour grotinit installez. Ça va et pour savoir si c'est bien installer dpn et vous aurez que les commandes qui paraissent utiliser dpn je vais pas te corrérer dans votre point d'église. Donc grotinit il a besoin d'un dossier source un dossier source dans lequel vous aurez votre projet de départ ce qui va vous servir et qui va vous permettre de partir toujours dans la même source de même cliquet donc moi j'avais un cliquet de base et ce cliquet là il est stocké donc on a aussi créé par des fichiers c'est grotinit et sur le dossier il a donc ce fait particulière il est relativement simple il a mis en trois fichiers à la base il a un compile.js un rebound comme un JSON et un dossier root et le dossier root c'est là vous allez mettre dpn dpn qui se rendait assez abonné par exemple dpn moi j'ai j'ai toujours la construction quand j'ai créé un plugin j'ai toujours besoin d'un package j'ai besoin d'un fichier grot pour des tâches qu'on aura plus tard j'ai des assets j'ai des JSON des images j'ai mon UMI j'ai le projecteur j'ai l'information c'est tout le monde dans le dossier close par exemple j'ai des classes pour les meta-box pour les testing of state pour les taxonomie et pour certaines fonctions on a dit le template tout à l'heure je sais pas si vous vous rappelez quand j'ai fait la démo dans le terminal j'avais une question qui me disait est-ce que vous voulez utiliser le template donc oui parce que je voulais que le visuel le livre soit différent du fichier single quand t'as acheté donc je vais avoir le fichier par exemple template fondation quand t'as acheté le dernier qui va être rajouté au package s'il avait dit non en fait le fichier aurait été exclu du template qui aurait été créé le fichier qui va faire le grand du temps terminal ce fichier-là c'est là où vous allez vous-même vous poser les questions auxquelles vous allez répondre pour créer la table tout à l'heure quand j'ai lancé terminal on a dit voilà vous avez un syntaxe qui s'appelle la création de la table sur la table ok j'ai commencé à répondre à des questions qu'est-ce que c'était le nom du plugin qu'est-ce que c'était le description de plugin url et certaines valeurs des faux ça c'est des questions ou même que vous allez vous poser dans votre fichier et la troisième question c'est en fait assez simple vous avez juste deux valeurs invitées dans votre fichier-s vous avez créé une question on va refaire la démo tout à l'heure pour vous remémorer un petit peu comment ça fonctionne mais sur certaines questions on a des valeurs par défaut tout à l'heure on m'a demandé est-ce que je voulais utiliser sas, less ou pas de pré-processeur pour le CSS donc par défaut moi j'ai mis que j'utilisais sas donc j'ai même pas à rentrer la valeur sas à chaque fois donc je gagne encore du temps je tape juste sur rentrer et le système va reconnaître que c'est sas la valeur par défaut et si j'avais tapé less les fichiers sas qui sont contenus dans le dossier-route auraient pas été inclus auraient pas été dupliqué dans le dossier final pas de réponse ça veut dire oui valeurs par défaut est-ce que j'utilise des custom post type donc oui non si je dis oui du coup j'ai inclus tout un tas de fichiers supplémentaires qui vont faire les registreurs custom post type qui vont faire les modèles donc les templates à la place du single.php donc sas c'est une conditionnelle on verra tout à l'heure dans le code comment ça fonctionne et puis ensuite comme j'utilise les dépendances mais non pas dans mon fichier source dans mon dossier source mais dans mon dossier final je vais aussi appeler toutes les dépendances auxquelles j'aurai besoin pour l'utilisation finale de mon plugin une fois qu'il sera créé toutes ces toutes ces lignes de code elles seront elles seront disponibles dans les slides en fait il suffit juste de les mettre les bout à bout et le script y fonctionne donc ce qui est intéressant dans ce script là c'est que comme on a vu les noms des fichiers les noms des constantes les noms des variables les noms des méthodes en fait tout tout est customisé et ça se base sur des noms et de noms de variables et des informations qui sont créées ici donc là par exemple je vais dire que je veux juste avoir le nom de mon projet et je remplace les espaces par des tirées et je mets tout en petit ça va être clairement utilisé pour soit de la documentation dans le code soit des noms de fonctions soit des noms de variables si on va dans le code par exemple du fichier source je vais prendre un fichier simple dans le plugin donc là je suis dans mon dossier qui contient le code qui va être passé à la moulinette c'est un peu trop petit non ? ouais pas terrible non plus on apprend cette ligne là par exemple là j'ai en gros si telle classe existe alors on va initier du code sauf que clairement vous voyez que c'est un petit peu chelou au niveau du code là cette partie là c'est pas du PHP classique ça c'est en fait l'appel au nom de variable que j'ai créé dans mon fichier js et cette partie là donc là le capitalized title replace machin si je vais dans mon dossier final donc le code une fois qu'il est passé à la moulinette donc on était dans on est dans le fichier plugin qui a été renommé dans index non pas index je suis pas dans le bon bar qui a été renommé en my bookstore donc là le code est devenu if class existe et là ça a été remplacé par my bookstore ce que j'ai donc indiqué dans le terminal et avec le passage de la moulinette on a enlevé les espaces on a mis underscore à la place on a mis des majuscules à chaque mot donc vous voyez bien la différence entre ici cette valeur là et cette valeur ci si on va un peu plus bas on voit bien que ça a été le cas ici on a appelé donc une valeur JavaScript qui a été remplacée par un nom de classe valide si je vais plus loin dans les constantes par exemple j'ai également des valeurs qui ont été remplacées à la volée alors si on va un petit peu plus loin on va voir qu'on a même des conditionnels si j'ai défini que je voulais utiliser des custom post type alors je vais indiquer que je veux bien avoir des fichiers relatifs au custom post type et là dans mon cas et bien c'est le cas j'ai bien mon fichier qui est appelé mais j'avais dit tout à l'heure que je voulais pas utiliser les taxonomies tout de suite donc là j'indique que si j'ai pas de taxonomie et du coup je n'inclu pas le fichier et là mon fichier n'est pas inclus et si je retourne dans le code on voit bien que là j'ai aucun fichier qui fait appel au taxonomie donc c'est plutôt puissant c'est plutôt puissant et c'est plutôt cool donc voilà ces fichiers dont on a parlé le taxonomie par exemple le fichier relatif à la haute taxonomie il n'a pas été copié parce que je ne l'ai pas invité à venir se mettre dans le dossier et tout ça c'est fait en JavaScript encore une fois on indique dans le fichier JavaScript si les valeurs contenues dans les réponses au terminal sont vides ou ne sont pas vides dans ces cas là on inclut ou pas le fichier dans le dossier final d'accord ? je vais pas trop aller dans la copie conditionnelle mais bon en gros si on prend ça sous laisse on aura plusieurs fichiers qui seront inclus ou pas dans le dossier final donc ça c'est pour les thèmes c'est pareil si c'est une signe conditionnelle si on indique qu'on veut utiliser des thèmes dans ces cas là on a du contenu ou pas qui vient se rajouter dans le paquet final et ensuite on lance le procès copie un procès et du coup ça va faire la réécriture du code ça va copier les fichiers et ça va aller encore plus loin si on retourne dans un dossier route j'ai un dossier qui s'appelle un fichier pardon ça s'appelle plugin.php ça s'appelle plugin.php et dans le fichier final il s'appelle mybookstore donc il a été renommé à la volée en fonction de ce que j'ai indiqué dans le terminal on va voir comment ça se passe donc les règles de renommage elles sont dans le troisième élément qu'on avait dans notre dossier route donc on avait le template.js et on avait le dossier route comme le renem c'est là qu'on va juste indiquer que tel fichier doit être renommé de telle manière et là on réutilise encore les valeurs qui nous sont indiquées dans le dossier par exemple ici la custom post type to a lowercase c'est encore du javascript donc clairement on passe à la moulinette on renomme les fichiers à la volée je vous sens mais perplexe ça va jusque là ? cool donc recodage parti en fait quand vous lancez ça va recréer tout le contenu ça va vous créer un dossier qui contient uniquement les fichiers dont vous avez besoin tous ces fichiers ils sont réécris chacun un par un à la volée et donc vous avez à la fin un produit qui est quasiment fini puisque vous avez toutes les fonctions dont vous avez besoin vous avez juste à faire un petit peu de mise en forme pour la suite parce que là dans l'autre cas c'était donc un auteur mais vous avez besoin d'avoir certains éléments donc donc voilà c'est plutôt bien parti pour vous pour votre augmentation, pour votre changement de poste et pour passer plus de temps à la plage si je prends l'exemple du ridny.ext c'est un fichier plutôt simple donc pour ceux qui sont pas développeurs ça va être assez facile à comprendre les règles d'écriture on voit bien que pour le title par exemple j'ai juste remplacé le nom du plugin à collade je vais pas rentrer dans le détail mais c'est comme ça qu'on doit appeler les fonctions les variables et du coup c'est ça qui va être réécris en fait par le terminal par note.js si on prend un fichier PHP on a le même système donc tout ce que vous avez à faire c'est vous prenez votre framework que vous utilisez habitude ou votre plugin par défaut ou votre thème par défaut et puis tous les variables PHP tous les éléments qui sont en suicide type de changé vous les remplacer par des variables javascript donc ça on avait vu tout à l'heure dans le code pour les constants c'est pareil en fait tous les éléments que vous avez besoin de changer vous les écrivez à la volée quand on fait un projet un projet final comme ça on a toujours besoin d'avoir un fichier javascript qui va vous permettre de pouvoir faire des actions supplémentaires par la suite comme par exemple générer un fichier POT pour la traduction ou vous permettre de faire de la minification ou vous permettre de prendre tout au fichier CSS et de les mettre dans un seul fichier ou pareil pour les javascript et ça ça peut être fait aussi par grunt et donc dans mon dans mon dossier final j'ai bien ce fichier là qui est ici et qui fait tout un tas de choses de manière complètement automatique donc je vais vous expliquer vite fait ce qu'on peut faire avec grunt et pas uniquement gruntinit on peut compiler le CSS donc ça dans mon fichier final ça va aussi être traité de manière automatique donc quand le dossier contient mon plugin fini je pourrais déjà relancer des tâches javascript directement depuis le terminal sans avoir à les créer directement en fait donc là on rentre dans un deuxième niveau de complexité qui en fait fait que grunt va gérer d'autres fichiers grunt qui vont permettre de faire d'autres tâches grunt si vous comprenez pas il faudra vous renseigner à ce niveau là parce que c'est plus compliqué pour le mini file CSS par exemple c'est pareil donc là j'ai bien des informations qui indiquent où je dois placer mes fichiers CSS pareil pour le JS donc tout ça c'est en fait la génération automatique le watch c'est ce qui va permettre de voir à chaque fois que vous faites un changement de contenu de mettre à jour vos fichiers CSS vos fichiers JS par exemple alors ça c'est une fonction qui permet de créer un fichier de traduction un pote c'est donc par défaut nécessaire et si je vais voir dans mon dossier que j'ai créé donc à la volée j'ai pas mis une seule ligne de code à la main dans celui-ci j'ai bien un dossier language avec un fichier pote qui est déjà créé donc ce fichier pote il a été créé à la volée donc qu'est-ce qui s'est passé quand j'ai lancé la moulinette du terminal le script est parti voir tous les fichiers qui avaient été copiés dans le dossier final il a regardé tous les textes domaines et à partir de là il a fait fabriquer le dossier enfin le fichier pote c'est déjà prêt à être traduit et puis après une fois qu'on a fait tout de l'install qu'on a créé ce dossier on va nettoyer tous les fichiers temporaires donc ça c'est une petite fonction simple et puis moi j'aime bien avoir une copie complètement finalisée exante de tout fichier temporaire donc on va faire une copie mais ça c'est pas le sujet principal de ce que je voulais vous montrer donc là on fait un zip aussi on met les modules on va éviter ça donc en gros ce que je voulais vous dire c'est que vous pouvez gagner du temps à fabriquer du code si vous passez un petit peu de temps en amont donc évidemment le dossier que je vous ai montré le dossier route dans lequel toutes les variables sont transformées en variables javascript ça prend du temps à faire mais une fois que c'est fait je vais pouvoir en quelques secondes créer un nouveau plugin qui sera en fait différent de chaque plugin que vous avez créé par avant donc si je dois récapituler on reste 10 minutes pour les questions si je dois récapituler si vous passez un petit peu de temps à prévoir en amont votre code avec cette moulinette vous pouvez vraiment gagner énormément de temps mais quand je dis énormément de temps parce que si on doit à chaque fois réutiliser du code qui soit sur un guide soit sur un guide ou d'ailleurs ou sur votre ordi vous passez énormément de temps pour des tâches qui sont inutiles puisqu'elles peuvent être remplacées par de l'automatisation donc je pense que je vais m'arrêter là j'espère que vous avez saisi le mode de fonctionnement de grunting it si vous n'avez pas saisi vraiment comment ça fonctionne si vous avez des slides une par une, vous copiez le code et ça marchera automatiquement il n'y aura vraiment aucun souci d'installation j'ai essayé de faire en sorte que ça soit vraiment le plus simple donc vous suivez tout toutes les étapes, une par une vous lancez le terminal et la magie va s'opérer si elle s'opère pas, vous m'envoyez un message sur Twitter et je serai de joo magicien du coup voilà merci de m'avoir écouté si vous avez des questions super satisfaites une question là bas Bonjour, merci j'ai plusieurs questions votre outil, vous le testez vous parlez de gagner du temps quel est le temps de maintenance de l'outil pour adapter aux nouvelles versions noires presse aux différents pages de cq par rapport à vos créations de fichiers de plugins de template quel est le coût ça en fait le coût est assez minime parce que dans le dossier route tu vas mettre ton plugin par défaut qui va te servir à créer tes modèles finis et en fait il suffit juste de le changer une seule fois donc si tu veux changer une seule fois un fichier tu vas le faire dans ton code source une seule fois, rajouter un fichier c'est comme si tu faisais un petit peu de code PHP et tu remplaces tes valeurs par du JavaScript et c'est tout en fait il n'y a pas vraiment d'étapes supplémentaires c'est un code sauf que la manière dont tu vas créer ton code tu vas juste faire en sorte de remplacer le contenu de manière dynamique par rapport au terminal ça répond à ta question oui bien sûr j'avais l'autre question c'est pourquoi le faire en JavaScript alors c'est une bonne question moi je l'ai faim javascript parce que je voulais avoir l'interface dans le terminal en fait c'est juste des questions à répondre si tu veux tu peux aller voir Thomas de Delin qui a fait l'atelier sur sur quoi c'était d'ailleurs sur react.js lui il a fait un système perso en PHP donc en fait il fait le même système c'est son PHP qui va générer d'autres fichiers PHP enfin j'ai pas script mais je trouvais que notre .js était beaucoup plus performant par rapport à PHP pour faire ce genre de travail en fait et tu peux le faire avec plein d'autres technos ok merci je t'en prie j'ai vu dans package.j zone il y avait une dépendance qui s'appelait grunt watch c'est un watcher il ouvre un port sur localhost par exemple et pas sur la racine de notre projet en fait le watch c'est j'ai dû speeder un peu sur la fin mais le watch c'est un outil qui va te permettre de checker en temps réel les modifications que tu fais sur ton CSS par exemple ou sur ton JavaScript ou sur la volet bah ton fichier sas par exemple si tu travailles uniquement sur du sas quand tu vas tester sur ton site bah il va falloir que tu utilises un CSS et pas un sas je connais bien j'utilise déjà le watcher de brunch ok donc la question c'est quoi alors si c'était bien un watcher c'est bien un watcher c'est exactement ça et c'est d'ailleurs quelque chose que j'encourage tout le monde à utiliser puisque ça permet de gagner énormément de temps et puis surtout de pouvoir faire de la génération encore à la volet quoi ensuite est-ce qu'on peut rajouter d'autres dépendances de dev ou de production alors ce que j'ai pas indiqué c'est que là je vous ai montré je vous ai fait deux démos un pour créer un plugin pour WordPress mais rien ne vous empêche de faire un programme en piton un programme en JavaScript pur en fait en n'importe quel langage gruntingit il s'en fout de savoir quel langage va être utilisé dans le fichier source il va juste appliquer toujours le même processus derrière donc au final vous avez la possibilité de faire tout et n'importe quoi donc si tu veux rajouter des paquets tu les mets dans ton dossier source et automatiquement ils seront envoyés dans ton dossier fini dans le dossier source dans ton dossier source tu vas en fait avoir ton fichier package.json ou grunt ce que tu veux et du coup là c'est à l'endroit où tu vas appeler les éléments on met les versions des packages qu'on veut et puis à chaque fois qu'on lance le gruntingit ça va installer ou upgrade ici évidemment il ne s'ouvre pas ici donc j'appelle mes dépendances et comme j'ai généré un autre fichier grunt à la volée en fait quand je vais lancer l'initialisation des paquets automatiquement ils voient de rajouter donc si tu veux rajouter des paquets tu les ajoutes ici et ensuite quand tu vas faire ton MPM sur ton dossier fini tu vas les avoir automatiquement ok c'est très bien oui je suis assez d'accord que c'est très bien ce qu'il y a d'autres questions et d'autres questions Aurélien en bas Hormis l'automatisation de la création de thème ou de plugin est-ce que t'as automatisé plein d'autres choses qu'il y a ce genre d'outils ? oui comme je disais c'est pas forcément que du WordPress par exemple ce qu'il a fait Thomas tout à l'heure de faire un thème avec du react.js on pourrait faire la même chose ici on pourrait générer des modules à la volée directement depuis gruntinit gruntinit c'est juste une machine qui va aller voir un dossier source peu importe ce qu'il y a à l'intérieur et faire la boulinette par rapport aux questions que vous l'avez posé donc en fait il n'y a aucune limite à pouvoir créer du contenu avec gruntinit c'est vraiment hyper puissant et t'as des exemples persos ou un plus ou pas du tout ? non alors moi je travaille que sur WordPress donc je l'ai appliqué qu'à WordPress mais je pourrais faire un bout de code pour juste montrer que ça fonctionne plus de questions ? non ok à toi Rachel merci à tous