{"id":229688,"date":"2022-11-10T13:38:00","date_gmt":"2022-11-10T10:38:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229688"},"modified":"2022-11-10T13:40:42","modified_gmt":"2022-11-10T10:40:42","slug":"bibliotheques-pour-plugins-wordpress-partie-2","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/bibliotheques-pour-plugins-wordpress-partie-2\/","title":{"rendered":"Biblioth\u00e8ques pour plugins WordPress, partie 2"},"content":{"rendered":"\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/fr\/bibliotheques-pour-plugins-wordpress-partie-1\/\" title=\"Hier\">Hier<\/a>, j&rsquo;ai commenc\u00e9 une courte s\u00e9rie d&rsquo;articles sur les outils qui, \u00e0 mon avis, permettent d&rsquo;\u00e9crire du code de haute qualit\u00e9 dans un projet WordPress (en particulier ceux qui sont des plugins construits \u00e0 l&rsquo;aide d&rsquo;une approche orient\u00e9e objet).<\/p>\n<p>Si vous n&rsquo;avez pas lu l&rsquo;article, le premier ensemble d&rsquo;outils mentionn\u00e9s est le suivant\u00a0:<\/p>\n<ul>\n<li><a href=\"https:\/\/phpunit.de\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPUnit<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a><\/li>\n<li><a href=\"https:\/\/phpmd.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMD<\/a><\/li>\n<\/ul>\n<p>Il y a environ cinq autres outils que j&rsquo;aime continuer \u00e0 ex\u00e9cuter sur mes projets. Voici donc les trois suivants avec les deux derniers \u00e0 venir dans le prochain post.<\/p>\n<h2>Biblioth\u00e8ques pour plugins WordPress, suite<\/h2>\n<p>Comme mentionn\u00e9 pr\u00e9c\u00e9demment, je trouve ces outils utiles chaque fois que je travaille sur des plugins WordPress orient\u00e9s objet. De plus, ceux-ci sont naturellement r\u00e9partis sur quelques messages pour que chacun soit court et cibl\u00e9.<\/p>\n<h3><a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Renifleur de code PHP<\/a><\/h3>\n<p>Si vous lisez ce blog depuis un certain temps, vous avez probablement lu un article ou au moins mentionn\u00e9 quelque chose \u00e0 propos de <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSniffer<\/a>. C&rsquo;est quelque chose que je pense, \u00e0 tout le moins, que chaque d\u00e9veloppeur WordPress devrait avoir install\u00e9 dans son IDE.<\/p>\n<p>Depuis la page de d\u00e9p\u00f4t du projet\u00a0:<\/p>\n<blockquote>\n<p>PHP_CodeSniffer tokenise les fichiers PHP, JavaScript et CSS et d\u00e9tecte les violations d&rsquo;un ensemble d\u00e9fini de normes de codage.<\/p>\n<\/blockquote>\n<p>Maintenant, en ce qui concerne les r\u00e8gles, c&rsquo;est une autre chose. Certaines personnes pr\u00e9f\u00e8rent les <a href=\"https:\/\/tommcfarlin.com\/following-the-wordpress-coding-standards\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">normes de codage WordPress<\/a> ; certains pr\u00e9f\u00e8rent <a href=\"https:\/\/wordpress.mediadoma.com\/fr\/utilisation-des-psr-par-rapport-aux-normes-de-codage-wordpress\/\" title=\"PSR2\">PSR2<\/a>, d&rsquo;autres pr\u00e9f\u00e8rent d&rsquo;autres ensembles de r\u00e8gles. Il ne s&rsquo;agit pas tant de ce que vous pr\u00e9f\u00e9rez tant que vous ou votre \u00e9quipe \u00eates coh\u00e9rents.<\/p>\n<p>Et c&rsquo;est ce que cette biblioth\u00e8que particuli\u00e8re vous aide \u00e0 faire. De plus, cela ne fait pas de mal que vous puissiez l&rsquo;int\u00e9grer \u00e0 votre IDE (en supposant qu&rsquo;il s&rsquo;agisse de l&rsquo;un des \u00e9diteurs les plus populaires).<\/p>\n<h3><a href=\"https:\/\/github.com\/sebastianbergmann\/phpcpd\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPCPD<\/a><\/h3>\n<p>PHPCPD est une biblioth\u00e8que simple qui analyse votre code pour d\u00e9tecter le code en double &#8211; qui provient g\u00e9n\u00e9ralement d&rsquo;un copier-coller ailleurs (m\u00eame s&rsquo;il s&rsquo;agit de votre base de code). L&rsquo;id\u00e9e derri\u00e8re la biblioth\u00e8que est de r\u00e9duire le code en double.<\/p>\n<\/p>\n<p>Et ce n&rsquo;est pas beaucoup plus clair <a href=\"https:\/\/github.com\/sebastianbergmann\/phpcpd\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">que \u00e7a<\/a> :<\/p>\n<blockquote>\n<p>phpcpd est un d\u00e9tecteur de copier\/coller (CPD) pour le code PHP.<\/p>\n<\/blockquote>\n<p>En d&rsquo;autres termes, c&rsquo;est une \u00e9tape pour vous aider \u00e0 le garder au SEC.<\/p>\n<h3><a href=\"https:\/\/github.com\/povils\/phpmnd\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMND<\/a><\/h3>\n<p>Si l&rsquo;un des objectifs que nous nous effor\u00e7ons d&rsquo;atteindre dans notre code est de le rendre aussi lisible que possible par d&rsquo;autres qui peuvent r\u00e9cup\u00e9rer la base de code, la bifurquer ou y contribuer (en particulier en open source), alors nous devons nous assurer que tous de nos valeurs ont des valeurs significatives.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166044-61e78d8e8d7a0.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-166044-61e78d8e8d7a0.png\" alt=\"Biblioth\u00e8ques pour plugins WordPress, partie 2\"><\/a><\/p>\n<p>Utiliser des nombres significatifs pour nous mais qui ne d\u00e9crivent pas ce que fait le code est important, mais ce n&rsquo;est pas quelque chose que nous faisons, n&rsquo;est-ce pas\u00a0? Ou peut-\u00eatre que c&rsquo;est juste moi.<\/p>\n<p>Mais c&rsquo;est l\u00e0 que <a href=\"https:\/\/github.com\/povils\/phpmnd\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMND<\/a> entre en jeu.<\/p>\n<blockquote>\n<p>phpmnd est un outil qui vous aide \u00e0 d\u00e9tecter les nombres magiques dans le code PHP. Par d\u00e9faut, 0 et 1 ne sont pas consid\u00e9r\u00e9s comme des nombres magiques.<\/p>\n<\/blockquote>\n<p>C&rsquo;est une biblioth\u00e8que simple mais utilis\u00e9e conjointement avec les biblioth\u00e8ques de cet article, et l&rsquo;article pr\u00e9c\u00e9dent peut aider \u00e0 am\u00e9liorer continuellement la qualit\u00e9 du code que vous contribuez \u00e0 vos r\u00e9f\u00e9rentiels.<\/p>\n<h2>Un ensemble d&rsquo;outils de plus<\/h2>\n<p>Comme mentionn\u00e9 dans le post pr\u00e9c\u00e9dent, l&rsquo;objectif sur lequel je travaille est de savoir comment incorporer tout cela dans un <code>composer.json<\/code>fichier que vous pouvez utiliser dans votre projet.<\/p>\n<p>N&rsquo;oubliez pas non plus que, selon le projet, vous devrez peut-\u00eatre s\u00e9lectionner une version de la biblioth\u00e8que en fonction de la version de PHP que vous utilisez.<\/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>Le deuxi\u00e8me article d&rsquo;une s\u00e9rie sur les biblioth\u00e8ques de plugins WordPress que mon \u00e9quipe et moi utilisons lorsque nous travaillons sur des solutions de haute qualit\u00e9 pour les autres.<\/p>\n","protected":false},"author":1,"featured_media":166045,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[717,1016],"tags":[1167],"class_list":["post-229688","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developpeur","category-sites-utiles","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/229688","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=229688"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/229688\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/166045"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=229688"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=229688"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=229688"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}