{"id":230816,"date":"2022-12-09T17:47:00","date_gmt":"2022-12-09T14:47:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230816"},"modified":"2022-12-09T18:41:22","modified_gmt":"2022-12-09T15:41:22","slug":"ne-surconcevez-pas-la-solution","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/ne-surconcevez-pas-la-solution\/","title":{"rendered":"Ne surconcevez pas la solution"},"content":{"rendered":"\n<p>Si vous venez d&rsquo;un milieu orient\u00e9 objet ou si vous essayez de cr\u00e9er toutes vos solutions pour WordPress en utilisant des techniques orient\u00e9es objet, il y aura des moments o\u00f9 vous aurez l&rsquo;impression de frapper un clou avec un marteau.<\/p>\n<p>Par exemple, disons que quelqu&rsquo;un vient vers vous et a besoin d&rsquo;un plugin personnalis\u00e9 d\u00e9velopp\u00e9 qui fonctionne avec un plugin tiers, mais il n&rsquo;a besoin de faire qu&rsquo;une seule chose.<\/p>\n<p>Vaut-il la peine de prendre le temps de cr\u00e9er une <strong><a href=\"https:\/\/wordpress.mediadoma.com\/fr\/classes-abstraites-partie-2-classes-abstraites-et-interfaces\/\" title=\"interface\">interface<\/a><\/strong>, d&rsquo;impl\u00e9menter ladite interface dans une classe concr\u00e8te, de mettre en place des <strong><a href=\"https:\/\/wordpress.mediadoma.com\/fr\/organisation-des-types-des-vues-et-des-abonnes-wordpress\/\" title=\"abonn\u00e9s\">abonn\u00e9s<\/a><\/strong>, <strong><a href=\"https:\/\/wordpress.mediadoma.com\/fr\/une-note-rapide-sur-le-code-de-test-unitaire-dans-les-projets-wordpress\/\" title=\"d'\u00e9crire des tests unitaires\">d&rsquo;\u00e9crire des tests unitaires<\/a><\/strong>, etc.<\/p>\n<p>Je peux voir l&rsquo;appel, mais je dis g\u00e9n\u00e9ralement non. Si l&rsquo;essentiel de ce que vous devez faire doit inclure des styles ou des fichiers JavaScript ou les deux, alors pourquoi ne pas vous fier aux API WordPress natives et \u00e0 la programmation proc\u00e9durale ?<\/p>\n<h2>Ne faites pas trop d&rsquo;ing\u00e9nierie<\/h2>\n<p>Disons qu&rsquo;un client potentiel vient \u00e0 vous qui :<\/p>\n<ul>\n<li>travaille avec un budget tr\u00e8s serr\u00e9,<\/li>\n<li>a un plugin tiers qui ne correspond pas bien \u00e0 son th\u00e8me,<\/li>\n<li>n&rsquo;a besoin que d&rsquo;un style l\u00e9ger,<\/li>\n<li>et a les fonds pour vous contracter pour le travail.<\/li>\n<\/ul>\n<p>En supposant que tout ce qui pr\u00e9c\u00e8de est vrai, je dirais que trouver la solution semble assez simple, n&rsquo;est-ce pas\u00a0? Nous devons auditer le site afin de pouvoir\u00a0:<\/p>\n<ul>\n<li>d\u00e9terminer le jeu de couleurs,<\/li>\n<li>trouver les s\u00e9lecteurs n\u00e9cessaires pour le CSS,<\/li>\n<li>puis commencez \u00e0 construire le plugin.<\/li>\n<\/ul>\n<p>Maintenant, quand il s&rsquo;agit de faire cela, j&rsquo;essaie toujours d&#8217;employer une poign\u00e9e de meilleures pratiques. M\u00eame si je tends vers la programmation orient\u00e9e objet, je ne l&rsquo;utilise pas toujours et je ne la recommande pas toujours.<\/p>\n<p>Au lieu de cela, je pense que l&rsquo;utilisation d&rsquo;une simple fonction ou d&rsquo;un ensemble de fonctions li\u00e9es \u00e0 l&rsquo;API WordPress de mani\u00e8re proc\u00e9durale fonctionne tr\u00e8s bien. Cependant, cela ne signifie pas que nous ne devrions pas viser \u00e0 cr\u00e9er une structure d&rsquo;organisation de fichiers solide car vous ne savez jamais quand vous devrez peut-\u00eatre revenir pour maintenir le projet.<\/p>\n<p>Pour cela, voici ce que je fais normalement\u00a0:<\/p>\n<ul>\n<li>cr\u00e9er un r\u00e9pertoire d&rsquo;assets pour les feuilles de style et JavaScript (pour les deux ou l&rsquo;un pour l&rsquo;autre &#8211; selon ce qui est n\u00e9cessaire),<\/li>\n<li>cr\u00e9er un r\u00e9pertoire <strong>src<\/strong> pour le code qui sera charg\u00e9 de s&rsquo;accrocher \u00e0 WordPress,<\/li>\n<li>ajoutez les fichiers habituels <strong>LICENSE, README<\/strong> et plugin bootstrap.<\/li>\n<\/ul>\n<p>Le r\u00e9pertoire r\u00e9sultant peut ressembler \u00e0 ceci\u00a0:<\/p>\n<p>\u00c0 partir de l\u00e0, je ne m&#8217;emb\u00eate m\u00eame plus avec un chargeur automatique. Au lieu de cela, j&rsquo;inclus les fichiers dans le r\u00e9pertoire source. Vous pouvez parcourir ces fichiers plut\u00f4t que de faire quelque chose <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/8d4e8a93a673d86f44d39c6e2893530e#file-00-bootstrap-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">comme ceci<\/a><\/strong>\u00a0:<\/p>\n<pre><code>&lt;?php\n\/**\n * Acme Plugin Example\n *\n * @author    Tom McFarlin &lt;tom@pressware.co&gt;\n * @license   GPL-3.0+\n * @link      https:\/\/pressware.co\n * @since     1.0.0\n * @copyright 2018 Tom McFarlin\n *\n * @wordpress-plugin\n * Plugin Name: Acme Plugin Example\n * Description: Provides consistent styling across the site for certain elements.\n * Version:     1.0.0\n * Author:      Tom McFarlin\n * Author URI:  https:\/\/tommcfarlin.com\n * License:     GPL-3.0+\n * License URI: http:\/\/www.gnu.org\/licenses\/gpl-3.0.txt\n *\/\n\ninclude_once plugin_dir_path(__FILE__).'src\/AddStyles.php';\ninclude_once plugin_dir_path(__FILE__).'src\/AddScripts.php';\n<\/code><\/pre>\n<p>Mais cela peut d\u00e9pendre du moment et de ce que vous faites.<\/p>\n<h2>C&rsquo;est trop simple<\/h2>\n<p>Peut-\u00eatre. Voici le probl\u00e8me\u00a0: chaque fois qu&rsquo;une personne s&rsquo;enracine dans l&rsquo;utilisation d&rsquo;un certain paradigme de programmation, ladite personne essaie de l&rsquo;appliquer partout et essaie de le faire tout le temps.<\/p>\n<p>Pas tout le monde, mais beaucoup. Moi inclus.<\/p>\n<p>Et lorsque vous vous retrouvez \u00e0 sur-architecturer quelque chose, pourquoi ne pas prendre du recul et essayer de simplifier un peu votre charge de travail ?<\/p>\n<p>Le probl\u00e8me est toujours r\u00e9solu, et il est fait d&rsquo;une mani\u00e8re qui a beaucoup moins de frais g\u00e9n\u00e9raux.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si l&rsquo;essentiel de ce que vous devez faire doit \u00eatre d&rsquo;inclure des styles ou des fichiers JavaScript ou les deux, alors ne surconcevez pas une solution plus que n\u00e9cessaire.<\/p>\n","protected":false},"author":1,"featured_media":236233,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[893,717,801,862],"tags":[1167],"class_list":["post-230816","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-developpeur","category-php-3","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/230816","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=230816"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/230816\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/236233"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=230816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=230816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=230816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}