{"id":229840,"date":"2022-11-14T14:03:00","date_gmt":"2022-11-14T11:03:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229840"},"modified":"2022-11-14T14:03:56","modified_gmt":"2022-11-14T11:03:56","slug":"pourquoi-sembeter-avec-le-chargement-automatique-dans-wordpress-partie-2","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/pourquoi-sembeter-avec-le-chargement-automatique-dans-wordpress-partie-2\/","title":{"rendered":"Pourquoi s&#8217;emb\u00eater avec le chargement automatique dans WordPress, partie 2"},"content":{"rendered":"\n<p>Dans <a href=\"https:\/\/wordpress.mediadoma.com\/fr\/pourquoi-sembeter-avec-le-chargement-automatique-dans-wordpress-partie-1\/\" title=\"le post pr\u00e9c\u00e9dent\">le post pr\u00e9c\u00e9dent<\/a>, j&rsquo;ai couvert quelques points expliquant pourquoi je pense que <strong>include_once, <em><\/em><\/strong> require_once <em><\/em>, et d&rsquo;autres d\u00e9clarations similaires entra\u00eenent de mauvaises pratiques de d\u00e9veloppement (au moins en ce qui concerne le travail que nous faisons avec nos projets WordPress ).<\/p>\n<p>Si vous ne l&rsquo;avez pas lu, ce n&rsquo;est pas grave. L&rsquo;essentiel du message est que ces d\u00e9clarations font:<\/p>\n<ol>\n<li>d\u00e9bogage plus difficile,<\/li>\n<li>code de tra\u00e7age plus difficile \u00e0 faire.<\/li>\n<\/ol>\n<p>En fin de compte, ce sont des choses que nous pouvons \u00e9viter. J&rsquo;ai termin\u00e9 le post avec ceci :<\/p>\n<p>Cela laisse encore la question de savoir pourquoi le chargement automatique (ou toute inclusion de fichiers tiers) est n\u00e9cessaire.<\/p>\n<p>Et bien que j&rsquo;aimerais couvrir tous les d\u00e9tails dans ce post, il faudra prendre ce post et un autre car il est important de comprendre certains sujets fondamentaux sur les langages, les interpr\u00e8tes et les compilateurs avant d&rsquo;aller trop loin.<\/p>\n<h2>Chargement automatique dans WordPress\u00a0: Types de langues<\/h2>\n<p>En ce qui concerne les langages de programmation, ils peuvent \u00eatre d\u00e9compos\u00e9s en deux types de langages distincts :<\/p>\n<ol>\n<li>typ\u00e9 statiquement<\/li>\n<li>typ\u00e9 dynamiquement<\/li>\n<\/ol>\n<p>Ils sont \u00e9galement faciles \u00e0 rep\u00e9rer.<\/p>\n<h3>Langages \u00e0 typage statique<\/h3>\n<p>Un langage \u00e0 typage statique signifie que lorsque vous d\u00e9clarez une variable, comme une cha\u00eene, un entier ou un nombre \u00e0 virgule flottante, il conserve ce type pendant toute sa dur\u00e9e de vie.<\/p>\n<p>Cela ne signifie pas qu&rsquo;il ne peut pas \u00eatre modifi\u00e9 ou analys\u00e9 dans un autre type, mais l&rsquo;id\u00e9e est que vous d\u00e9clarez son type et c&rsquo;est ainsi qu&rsquo;il fonctionne.<\/p>\n<p>Il est g\u00e9n\u00e9ralement sp\u00e9cifi\u00e9 comme un certain type lorsqu&rsquo;il est d\u00e9clar\u00e9, comme <strong>string<\/strong> ou <strong>int<\/strong>, et il est le plus souvent vu dans les langages compil\u00e9s.<\/p>\n<h3>Langages \u00e0 typage dynamique<\/h3>\n<p>Les langages typ\u00e9s dynamiquement, en revanche, ont des variables qui sont plus fluides, faute d&rsquo;un meilleur terme, dans la nature.<\/p>\n<p>C&rsquo;est-\u00e0-dire que vous pouvez d&rsquo;abord le d\u00e9clarer comme une <strong>cha\u00eene<\/strong>, puis le comparer \u00e0 un <strong>entier<\/strong> et l&rsquo;utiliser plus tard comme une <strong>cha\u00eene<\/strong> \u00e0 nouveau.<\/p>\n<p>L&rsquo;interpr\u00e9teur ou le compilateur (selon le langage que vous utilisez) fera de son mieux pour d\u00e9duire ce que vous essayez de faire en fonction du contexte de ce que vous faites dans votre code, mais ce n&rsquo;est pas toujours correct.<\/p>\n<p>Cela peut entra\u00eener des effets secondaires et des bugs \u00e9tranges.<\/p>\n<p>JavaScript est comme \u00e7a. Pour voir un exemple, ouvrez la console de votre navigateur et entrez quelque chose comme ce que vous voyez dans la capture d&rsquo;\u00e9cran suivante (et faites attention au r\u00e9sultat) :<\/p>\n<p>Notez que lorsque nous utilisons un signe double \u00e9gal standard, l&rsquo;interpr\u00e9teur contraint la cha\u00eene dans le type bool\u00e9en m\u00eame si la vraie cha\u00eene n&rsquo;est pas vraie.<\/p>\n<p>Le deuxi\u00e8me cas est pr\u00e9cis (et c&rsquo;est pourquoi triple-equals devrait presque toujours \u00eatre utilis\u00e9).<\/p>\n<p>De plus, la fa\u00e7on dont quelque chose peut fonctionner dans une langue n&rsquo;est pas la fa\u00e7on dont cela peut fonctionner dans une autre langue.\n<\/p>\n<p>En fin de compte, ne vous attendez pas \u00e0 ce que vos langages fassent la m\u00eame chose simplement parce qu&rsquo;ils peuvent prendre en charge le typage dynamique.<\/p>\n<h2>Qu&rsquo;est-ce que cela a \u00e0 voir avec le chargement automatique\u00a0?<\/h2>\n<p>D&rsquo;accord, nous avons donc un peu parl\u00e9 des primitives et tout cela est bien, mais cela ne fait pas grand-chose quand on parle de classes, d&rsquo;objets, d&rsquo;instanciation, de chargement automatique, etc., n&rsquo;est-ce pas\u00a0?<\/p>\n<p>Le but d&rsquo;aborder les sujets susmentionn\u00e9s est de montrer le r\u00f4le que jouent les interpr\u00e9teurs et les compilateurs lorsqu&rsquo;ils travaillent avec du code dans des langages dynamiques.<\/p>\n<p>Et c&rsquo;est important car PHP est un langage dynamique.<\/p>\n<p>\u00c0 ce stade, j&rsquo;allais \u00e0 l&rsquo;origine commencer \u00e0 regarder des exemples de code PHP, des espaces de noms, le chargement automatique, <strong>les<\/strong> instructions d&rsquo;inclusion, etc., mais j&rsquo;essaie de garder mes articles \u00e0 une certaine longueur et cela a commenc\u00e9 \u00e0 s&rsquo;\u00e9tendre un peu plus que je ne le voulais .<\/p>\n<p>Donc, la conclusion ultime de cet article, si je devais le r\u00e9sumer, est la suivante\u00a0:<\/p>\n<p>Les langages \u00e0 typage dynamique, comme PHP, n&rsquo;ont pas le luxe des langages compil\u00e9s o\u00f9 tout est compil\u00e9 en un seul binaire. Nous devons dire au programme, d&rsquo;une certaine mani\u00e8re, o\u00f9 les d\u00e9pendances existent dans le contexte du programme plus large.<\/p>\n<p>Et c&rsquo;est ce que j&rsquo;essaierai de couvrir dans le prochain article.<\/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>Comprendre les langages typ\u00e9s dynamiquement et les langages typ\u00e9s statiquement est essentiel pour comprendre le chargement automatique dans WordPress et PHP.<\/p>\n","protected":false},"author":1,"featured_media":165674,"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-229840","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\/229840","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=229840"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/229840\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/165674"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=229840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=229840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=229840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}