{"id":229585,"date":"2022-11-08T10:05:00","date_gmt":"2022-11-08T07:05:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229585"},"modified":"2022-11-09T08:35:05","modified_gmt":"2022-11-09T05:35:05","slug":"utilisation-des-psr-par-rapport-aux-normes-de-codage-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/utilisation-des-psr-par-rapport-aux-normes-de-codage-wordpress\/","title":{"rendered":"Utilisation des PSR (par rapport aux normes de codage WordPress)"},"content":{"rendered":"\n<p>\u00c0 ce stade, je ne sais pas combien d&rsquo;articles j&rsquo;ai \u00e9crits sur l&rsquo;importance des <a href=\"https:\/\/github.com\/WordPress-Coding-Standards\/WordPress-Coding-Standards\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">normes de codage WordPress<\/a> (suffisamment pour les lier <a href=\"https:\/\/tommcfarlin.com\/psrs-wordpress-coding-standards\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ici<\/a>, <a href=\"https:\/\/tommcfarlin.com\/following-the-wordpress-coding-standards\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ici<\/a> et <a href=\"https:\/\/tommcfarlin.com\/wordpress-coding-standards-for-the-planet\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ici<\/a>, je suppose, ce qui compte pour quelque chose).<\/p>\n<p>Mais apr\u00e8s avoir fait suffisamment de projets pour des clients et <a href=\"https:\/\/twitter.com\/tobyschrapel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">travaill\u00e9 avec des d\u00e9veloppeurs<\/a> qui sont beaucoup plus intelligents et familiaris\u00e9s avec les outils avanc\u00e9s que moi, je suis \u00e0 un endroit o\u00f9 je choisis de <a href=\"http:\/\/www.php-fig.org\/psr\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">commencer \u00e0 utiliser<\/a> les PSR dans le d\u00e9veloppement de WordPress WordPress.<\/p>\n<p>Ah le drame, non ?<\/p>\n<p>S\u00e9rieusement. Il y a des raisons \u00e0 cela, et il y a des moments o\u00f9 je pense que les normes de codage WordPress devraient toujours \u00eatre utilis\u00e9es, mais je suis rapidement de plus en plus convaincu que la construction de tout projet moderne sur WordPress devrait utiliser des outils PHP plus modernes (que je Je mentionnerai bri\u00e8vement plus tard).<\/p>\n<h2>Utilisation des PSR dans le d\u00e9veloppement WordPress<\/h2>\n<p>Des messages comme celui-ci donnent souvent un aper\u00e7u d&rsquo;un d\u00e9bat ou d&rsquo;une r\u00e9ponse dramatique au sein de WordPress, ce qui n&rsquo;est pas mon intention ni quelque chose que je pense m\u00eame n\u00e9cessaire. Pour \u00eatre honn\u00eate, je connais un bon nombre <a href=\"https:\/\/twitter.com\/GaryJ\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">d&rsquo;<\/a> <a href=\"https:\/\/twitter.com\/tobyschrapel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">autres<\/a> <a href=\"https:\/\/twitter.com\/rarst\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">d\u00e9veloppeurs qui ont<\/a> <a href=\"https:\/\/twitter.com\/twigpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tous<\/a> fait cela il y a longtemps, en ont parl\u00e9, ont avanc\u00e9 et ont continu\u00e9 \u00e0 avoir du succ\u00e8s \u00e0 la fois dans leur entreprise et dans leurs projets de loisirs.<\/p>\n<p>Mais \u00e9tant donn\u00e9 que j&rsquo;ai tellement parl\u00e9 de l&rsquo;un par rapport \u00e0 l&rsquo;autre, j&rsquo;ai pens\u00e9 qu&rsquo;il valait la peine de partager mon point de vue sur les raisons pour lesquelles j&rsquo;opte pour ce changement maintenant et sur la justification qui le sous-tend.<\/p>\n<h3>1 Parit\u00e9 avec la communaut\u00e9 PHP<\/h3>\n<p>Au cours de la derni\u00e8re ann\u00e9e environ, et vraiment au cours des derniers mois de cette ann\u00e9e seulement, je me suis habitu\u00e9 \u00e0\u00a0:<\/p>\n<ul>\n<li>des amis d\u00e9veloppeurs orient\u00e9s PHP plus exp\u00e9riment\u00e9s qui approuvent les outils qui s&rsquo;attendent \u00e0 ce que les PSR soient adopt\u00e9s,<\/li>\n<li>l&rsquo;utilisation de <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\/issues\/604\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\/\/@codingStandardsIgnoreStart et \/\/@codingStandardsIgnoreEnd<\/a> dans mon code,<\/li>\n<li>des ensembles de r\u00e8gles personnalis\u00e9s pour mes projets en fonction des environnements dans lesquels ils sont d\u00e9ploy\u00e9s,<\/li>\n<li>et plus.<\/li>\n<\/ul>\n<p>En fin de compte, il s&rsquo;agit de vouloir maintenir la parit\u00e9 (ou un peu) avec la plus grande communaut\u00e9 PHP tout en \u00e9crivant du code lisible et bas\u00e9 sur des normes au-dessus de WordPress. Et j&rsquo;aimerais aussi utiliser d&rsquo;autres outils et des versions plus r\u00e9centes d&rsquo;outils existants (dont je parlerai plus tard dans cet article).<\/p>\n<h3>2 Probl\u00e8mes avec les environnements modernes<\/h3>\n<p>Au moment de la r\u00e9daction de cet article, <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSniffer<\/a> (n\u00e9cessaire pour ex\u00e9cuter les normes de codage WordPress) est \u00e0 la version <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\/tree\/3.0.2\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">3.0.2<\/a>. Cependant, il existe des probl\u00e8mes de compatibilit\u00e9 avec PHPCS et avec les normes de codage WordPress. <a href=\"https:\/\/github.com\/WordPress-Coding-Standards\/WordPress-Coding-Standards\/issues\/718\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Plus pr\u00e9cis\u00e9ment<\/a> :<\/p>\n<blockquote>\n<p>La nouvelle version de PHP CodeSniffer a quelques fonctionnalit\u00e9s int\u00e9ressantes, mais introduit des changements de rupture qui signifient que les normes de codage WordPress ne sont pas compatibles.<\/p>\n<\/blockquote>\n<p>Pour \u00eatre clair (et en raison de la nature du logiciel), c&rsquo;est une question de temps avant qu&rsquo;il ne soit corrig\u00e9. Mais si vous travaillez sur une base de code et que vous utilisez Composer et les normes de codage WordPress, vous devrez d\u00e9finir explicitement la version de PHP CodeSniffer plut\u00f4t que la version la plus r\u00e9cente actuellement.<\/p>\n<p>De plus, j&rsquo;ai rencontr\u00e9 des probl\u00e8mes avec des clients o\u00f9 le fait que je n&rsquo;adopte pas les PSR dans le d\u00e9veloppement de WordPress a entra\u00een\u00e9 un comportement \u00e9trange lors du d\u00e9ploiement de code. On pourrait peut-\u00eatre faire valoir qu&rsquo;ils devraient ajuster l&rsquo;environnement, mais s&rsquo;ils s&rsquo;efforcent de mettre les outils les plus modernes \u00e0 la disposition des personnes qui les utilisent, pourquoi r\u00e9gresser\u00a0?<\/p>\n<h3>3 Compatibilit\u00e9 avec les outils modernes<\/h3>\n<p>Enfin, il existe un certain nombre d&rsquo;outils modernes que je n&rsquo;ai pas pu utiliser, et encore moins apprendre, \u00e0 cause de ce qui est et de ce qui n&rsquo;est pas pris en charge par la nature de la gestion des versions.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166244-61e790be9cd6b.png\" 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-166244-61e790be9cd6b.png\" alt=\"Utilisation des PSR (par rapport aux normes de codage WordPress)\" ><\/a><\/p>\n<p>Par exemple, <a href=\"https:\/\/pressware.co\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">nous<\/a> utilisions <a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a> dans un projet r\u00e9cent qui prend en charge une vari\u00e9t\u00e9 d&rsquo;outils, mais nous n&rsquo;avons pas pu utiliser, disons, <a href=\"https:\/\/phpmd.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMD<\/a> en raison du manque d&rsquo;adoption des PSR. En ce qui me concerne :<\/p>\n<ul>\n<li>Je veux continuellement am\u00e9liorer mes comp\u00e9tences en tant que d\u00e9veloppeur (et, dans ce contexte, d\u00e9veloppeur PHP),<\/li>\n<li>le manque de support pour des outils plus modernes me met dans un sch\u00e9ma d&rsquo;attente que je n&rsquo;aurais pas connu autrement,<\/li>\n<li>Je veux continuer \u00e0 travailler avec WordPress mais le faire avec un flux de travail plus moderne<\/li>\n<\/ul>\n<p>Et en ce moment, ne pas utiliser les PSR cr\u00e9e un foss\u00e9 entre ce que fait le reste de la communaut\u00e9 PHP et ce que fait WordPress. J&rsquo;aimerais donc avancer tout en continuant \u00e0 travailler sur des projets en plus des logiciels que j&rsquo;aime toujours utiliser.<\/p>\n<h2>Qu&rsquo;en est-il des normes de codage WordPress<\/h2>\n<p>Alors, qu&rsquo;est-ce que cela signifie \u00e0 propos des normes de codage WordPress et des publications pr\u00e9c\u00e9dentes\u00a0? Rien, vraiment. La fa\u00e7on dont je le vois: Les normes de codage WordPress doivent \u00eatre utilis\u00e9es chaque fois que vous travaillez sur WordPress Core ou quelque chose qui va y \u00eatre \u00e9troitement int\u00e9gr\u00e9.<\/p>\n<p>Mais si vous travaillez sur quelque chose qui repose sur WordPress ou sur quelque chose qui utilise WordPress comme base et que vous pouvez utiliser les PSR dans le d\u00e9veloppement WordPress avec des outils qui peuvent aider \u00e0 augmenter la qualit\u00e9 de la base de code que vous construisez.<\/p>\n<p>Donc, du moins pour l&rsquo;instant, c&rsquo;est la perspective que je vais adopter. J&rsquo;ai h\u00e2te de voir comment \u00e7a se passe dans les prochains mois. Et, comme pour tout ce que j&rsquo;ai partag\u00e9, je partagerai les aspects de la r\u00e9alisation de ce changement.<\/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>Apr\u00e8s suffisamment de projets en collaboration avec des d\u00e9veloppeurs plus intelligents, je suis sur le point de commencer \u00e0 utiliser les PSR dans le d\u00e9veloppement WordPress.<\/p>\n","protected":false},"author":1,"featured_media":166245,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[717,841,862],"tags":[1167,1167],"class_list":["post-229585","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developpeur","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/229585","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=229585"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/229585\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/166245"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=229585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=229585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=229585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}