{"id":229832,"date":"2022-11-14T12:48:00","date_gmt":"2022-11-14T09:48:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229832"},"modified":"2022-11-14T12:49:07","modified_gmt":"2022-11-14T09:49:07","slug":"pourquoi-sembeter-avec-le-chargement-automatique-dans-wordpress-partie-1","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/pourquoi-sembeter-avec-le-chargement-automatique-dans-wordpress-partie-1\/","title":{"rendered":"Pourquoi s&#8217;emb\u00eater avec le chargement automatique dans WordPress, partie 1"},"content":{"rendered":"\n<p>L&rsquo;une des choses les plus simples que nous puissions faire lorsque nous travaillons sur des plugins WordPress est de supprimer les\u00a0 instructions <strong>require_once<\/strong> ou <strong>include_once<\/strong> dans notre code.<\/p>\n<p>Et pourquoi pas? C&rsquo;est un moyen facile d&rsquo;apporter tous les fichiers ou d\u00e9pendances n\u00e9cessaires pour une classe donn\u00e9e, de les rendre facilement lisibles et de ne pas avoir \u00e0 se soucier de cr\u00e9er d&rsquo;\u00e9normes fichiers de code. Autrement dit, cela nous aide \u00e0 simplifier ce que nous \u00e9crivons afin que nous puissions faire en sorte que nos classes fassent [principalement ou id\u00e9alement] ce qu&rsquo;elles font bien.<\/p>\n<p>Si vous avez lu ce site au cours de la derni\u00e8re ann\u00e9e, vous savez que je suis un fan du chargement automatique et que je pense que toute personne travaillant avec PHP &#8211; que vous utilisiez WordPress ou une autre plate-forme &#8211; devrait utilisation.<\/p>\n<p>Mais cela soul\u00e8ve deux questions, surtout si vous d\u00e9butez :<\/p>\n<ol>\n<li>Pourquoi s&#8217;emb\u00eater avec le chargement automatique alors qu&rsquo;il existe d&rsquo;autres fa\u00e7ons de g\u00e9rer les d\u00e9pendances de chargement\u00a0?<\/li>\n<li>Comment le chargement automatique se compare-t-il aux langages compil\u00e9s\u00a0?<\/li>\n<\/ol>\n<p>J&rsquo;ai donc pens\u00e9 qu&rsquo;il valait la peine d&rsquo;y r\u00e9pondre dans les prochains articles.<\/p>\n<h2>Pourquoi s&#8217;emb\u00eater avec le chargement automatique\u00a0?<\/h2>\n<p>Le court c&rsquo;est ceci:<\/p>\n<ol>\n<li><strong>require_once<\/strong> et <strong>include_once<\/strong> peuvent conduire \u00e0 un code difficile \u00e0 d\u00e9boguer,<\/li>\n<li>il est difficile de tracer le code.<\/li>\n<\/ol>\n<p>Mais comment \u00e7a ?<\/p>\n<h3>1 Le d\u00e9bogage est difficile<\/h3>\n<p>Lors de l&rsquo;\u00e9criture de code, si quelque chose est certain, c&rsquo;est qu&rsquo;il y aura quelque chose qui ne fonctionnera pas comme pr\u00e9vu. C&rsquo;est dans la nature de ce que nous faisons, n&rsquo;est-ce pas?<\/p>\n<p>Donc, quand vient le temps de d\u00e9boguer du code, nous avons tous nos strat\u00e9gies.<\/p>\n<ul>\n<li>certains d&rsquo;entre nous choisissent d&rsquo;utiliser <strong>echo<\/strong> ou <strong>var_dump<\/strong> pour tracer le code,<\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/debug-bar-console\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">utiliser un plugin<\/a> dans WordPress,<\/li>\n<li>d&rsquo;autres utilisent un d\u00e9bogueur.<\/li>\n<\/ul>\n<p>Bien que cet article ne traite pas de la fa\u00e7on de d\u00e9boguer, c&rsquo;est le fait que nous devons d\u00e9boguer. Donc, si nous savons que nous allons devoir le faire, ne devrions-nous pas nous faciliter la t\u00e2che autant que possible\u00a0?<\/p>\n<p>PHP est un langage typ\u00e9 dynamiquement, donc il y a beaucoup de choses, en g\u00e9n\u00e9ral, qui sont prises en charge pour nous chaque fois que nous \u00e9crivons le code. C&rsquo;est-\u00e0-dire que certaines choses sont d\u00e9duites ou forc\u00e9es chaque fois que le code est ex\u00e9cut\u00e9.<\/p>\n<p>Par exemple, supposons que vous travaillez avec une cha\u00eene et que vous la comparez \u00e0 un nombre. L&rsquo;interpr\u00e9teur fera ce qu&rsquo;il peut pour deviner ce que vous faites (cherchez-vous \u00e0 analyser la cha\u00eene en un entier ou vice versa\u00a0?), puis travaillera avec cela.<\/p>\n<p>Travailler avec des variables seules peut \u00eatre un exercice de pr\u00e9cision car nous voulons que notre code se lise comme nous le souhaitons. Pourquoi laisser \u00e0 l&rsquo;interpr\u00e8te le soin de deviner ce que nous voulons dire? Et si l&rsquo;interpr\u00e8te doit faire un travail suppl\u00e9mentaire, les humains le font certainement.<\/p>\n<p>\u00c0 cette fin, si nous savons que des bogues vont \u00eatre introduits et qu&rsquo;il existe des moyens d&rsquo;\u00e9crire du code plus propre, pourquoi ne le ferions-nous pas\u00a0?<\/p>\n<h3>2 Le tra\u00e7age est difficile (ou peut-\u00eatre plus difficile\u00a0?)<\/h3>\n<p>Mais cela ne fournit toujours pas de raison pour laquelle nous devrions nous fier \u00e0 quelque chose comme un chargeur automatique par rapport aux fonctionnalit\u00e9s int\u00e9gr\u00e9es du langage, n&rsquo;est-ce pas\u00a0?<\/p>\n<p>Consid\u00e9rez ceci\u00a0: supposons que vous parcouriez un fichier en essayant de trouver un bogue et que vous rencontriez une fonction qui contient du code, utilise <strong>include_once<\/strong>, puis utilise un autre code.<\/p>\n<p>Cela signifie que vous devez lire le code, le conserver mentalement, sauter dans un autre fichier, comprendre ce code, puis revenir au fichier d&rsquo;origine. Et cela suppose que le deuxi\u00e8me fichier n&rsquo;inclut pas <strong>ou<\/strong> ne <strong>n\u00e9cessite<\/strong> pas d&rsquo; autres fichiers non plus.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165694-61e786c8874b7.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-165694-61e786c8874b7.jpg\" alt=\"Pourquoi s&#039;emb\u00eater avec le chargement automatique dans WordPress, partie 1\"><\/a><\/p>\n<p>C&rsquo;est ce qu&rsquo;on appelle le code spaghetti pour une raison.<\/p>\n<p>Cela dit, vous pouvez voir la situation difficile que cela introduit lorsque vous choisissez d&rsquo;imbriquer ce code dans le reste de votre programme. En bref, vous avez imbriqu\u00e9 l&rsquo;inclusion de d\u00e9pendances, ce qui rend intrins\u00e8quement plus difficile le suivi d&rsquo;un probl\u00e8me.<\/p>\n<p>Cela ne veut pas dire que le chargement automatique r\u00e9sout automatiquement ce probl\u00e8me, mais cela signifie que cela ne doit pas n\u00e9cessairement \u00eatre comme \u00e7a. Au lieu de cela, vous pouvez \u00e9crire du code qui instancie des classes, appelle des m\u00e9thodes, puis ex\u00e9cute du code sans avoir besoin d&rsquo;inclure quoi que ce soit manuellement.<\/p>\n<h3>Code plus lisible et tra\u00e7able<\/h3>\n<p>Ce faisant, je trouve que cela nous oblige \u00e0 \u00e9crire un code plus propre, sans doute un code plus maintenable. Cela facilite \u00e9galement l&rsquo;\u00e9criture de code que nous pouvons tracer plus facilement, et qui est plus facile \u00e0 exploiter avec un d\u00e9bogueur.<\/p>\n<p>Autrement dit, nous pouvons d\u00e9finir des points d&rsquo;arr\u00eat \u00e0 certains endroits de notre code, faire en sorte que le d\u00e9bogueur nous emm\u00e8ne automatiquement dans la classe invoqu\u00e9e et revenir dans la fonction qui l&rsquo;appelait.<\/p>\n<p>Cela ne signifie pas qu&rsquo;il ne peut pas \u00eatre fait autrement, mais les avantages l&#8217;emportent largement sur les alternatives. Et, bien s\u00fbr, cela laisse toujours la question de savoir pourquoi le chargement automatique (ou toute inclusion de fichiers tiers) est n\u00e9cessaire.<\/p>\n<p>Mais c&rsquo;est ce qui sera couvert dans la deuxi\u00e8me partie de la s\u00e9rie.<\/p>\n<h2>Autre lecture<\/h2>\n<p>Mon article sur les espaces de <a href=\"https:\/\/wordpress.mediadoma.com\/fr\/espaces-de-noms-et-chargement-automatique-dans-wordpress\/\" title=\"noms et le chargement automatique dans WordPress\">noms et le chargement automatique dans WordPress<\/a>, ainsi que le <a href=\"https:\/\/github.com\/tommcfarlin\/simple-autoloader-for-wordpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Simple Autoloader pour WordPress,<\/a> sont deux autres ressources que je trouve \u00e9videmment li\u00e9es \u00e0 cet article particulier. Donc, si vous avez le temps, jetez-y un \u0153il (et n&rsquo;h\u00e9sitez pas \u00e0 ouvrir un ticket ou une pull request sur le projet simple autoloader).<\/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>J&rsquo;ai d\u00e9j\u00e0 parl\u00e9 et \u00e9crit sur le chargement automatique dans WordPress, mais je trouve toujours les avantages du chargement automatique pour \u00e9crire du code organis\u00e9 et tra\u00e7able.<\/p>\n","protected":false},"author":1,"featured_media":165695,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[893,717,841],"tags":[1167],"class_list":["post-229832","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-developpeur","category-tutoriels","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/229832","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=229832"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/229832\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/165695"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=229832"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=229832"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=229832"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}