{"id":231853,"date":"2023-01-03T18:26:00","date_gmt":"2023-01-03T15:26:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231853"},"modified":"2023-01-03T18:28:53","modified_gmt":"2023-01-03T15:28:53","slug":"configuration-de-php-codesniffer-par-projet","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/configuration-de-php-codesniffer-par-projet\/","title":{"rendered":"Configuration de PHP CodeSniffer par projet"},"content":{"rendered":"\n<p>Il y a quelques ann\u00e9es, j&rsquo;ai \u00e9crit un article sur la <a href=\"https:\/\/tommcfarlin.com\/php-codesniffer-in-visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">configuration de PHP CodeSniffer dans Visual Studio Code<\/a> (et je l&rsquo;ai \u00e9galement mis \u00e0 jour r\u00e9cemment).<\/p>\n<p>Mais cela fait quatre ans que ce message a \u00e9t\u00e9 \u00e9crit \u00e0 l&rsquo;origine et, pendant ce temps, beaucoup de choses peuvent changer en termes de fa\u00e7on d&rsquo;\u00e9crire du code.<\/p>\n<p>Quatre ans, c&rsquo;est \u00e0 peu pr\u00e8s l&rsquo;\u00e2ge d&rsquo;Internet, n&rsquo;est-ce pas\u00a0?<\/p>\n<p>Quoi qu&rsquo;il en soit, les points de base de cet article sont toujours valables, mais si vous travaillez sur une vari\u00e9t\u00e9 de projets et que certains d&rsquo;entre eux n\u00e9cessitent des configurations, des param\u00e8tres et des normes diff\u00e9rents, alors la fa\u00e7on dont vous proc\u00e9dez pour installer et configurer PHP CodeSniffer peut \u00eatre diff\u00e9rente de comment vous le configurez au niveau du syst\u00e8me.<\/p>\n<p>Donc, si vous \u00eates dans cette position, voici comment vous pouvez configurer PHP CodeSniffer projet par projet \u00e0 l&rsquo;aide de Visual Studio Code.<\/p>\n<h2>PHP CodeSniffer par projet<\/h2>\n<p>Cet article fait quelques hypoth\u00e8ses :<\/p>\n<ul>\n<li>Vous connaissez <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> ,<\/li>\n<li>Vous savez g\u00e9rer les espaces de <a href=\"https:\/\/code.visualstudio.com\/docs\/getstarted\/settings\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">travail<\/a> dans Code,<\/li>\n<li>Vous connaissez <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSniffer<\/a> (au moins au niveau global),<\/li>\n<li>Et vous savez comment utiliser les <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ikappas.phpcs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">extensions<\/a> de code .<\/li>\n<\/ul>\n<p>Si vous n&rsquo;\u00eates pas s\u00fbr de l&rsquo;un de ces \u00e9l\u00e9ments, consultez <a href=\"https:\/\/tommcfarlin.com\/php-codesniffer-in-visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">cet article<\/a>, puis revenez. Je vais vous expliquer le reste.<\/p>\n<h3>1 Installez PHP CodeSniffer localement<\/h3>\n<p>\u00c9tant donn\u00e9 que diff\u00e9rents projets peuvent n\u00e9cessiter un ensemble de normes diff\u00e9rent, je trouve utile d&rsquo;en conserver une copie <code>composer.json<\/code>et, naturellement, <code>composer.lock<\/code>par projet.<\/p>\n<p>Cela signifie qu&rsquo;\u00e0 la racine de mon projet, j&rsquo;ai un <code>composer.json<\/code>fichier avec tout ce dont j&rsquo;ai besoin pour un projet donn\u00e9. Dans le cas de cet article, j&rsquo;ai besoin d&rsquo;une copie de PHP CodeSniffer.<\/p>\n<p>Pour installer PHP CodeSniffer et la derni\u00e8re version des normes de codage WordPress au niveau du projet, je vais cr\u00e9er le fichier ci-dessus \u00e0 la racine de mon projet, puis inclure les \u00e9l\u00e9ments suivants\u00a0:<\/p>\n<pre><code>{\n    \"require\": {\n        \"wp-coding-standards\/wpcs\": \"2.3.0\",\n        \"squizlabs\/php_codesniffer\": \"3.*\"\n    }\n}\n<\/code><\/pre>\n<p>Dans la plupart des cas, ce fichier sera beaucoup plus complexe, mais vous aurez une id\u00e9e g\u00e9n\u00e9rale de ce que vous devez inclure.<\/p>\n<p>Ensuite, ex\u00e9cutez <code>composer install<\/code>et cela cr\u00e9era un <code>vendor<\/code>r\u00e9pertoire dans votre projet qui inclura \u00e0 la fois les normes de codage WordPress ainsi que PHP CodeSniffer.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158884-61e6e841e56c6.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-158884-61e6e841e56c6.png\" alt=\"Configuration de PHP CodeSniffer par projet\"><\/a><\/p>\n<h3>2 Configurer des liens symboliques vers les fichiers binaires locaux<\/h3>\n<p>\u00c0 ce stade, vous trouverez peut-\u00eatre utile de cr\u00e9er un lien symbolique vers les binaires pour PHPCS et PHPCBF afin de ne pas entrer en conflit avec tout ce que vous ex\u00e9cutez au niveau global.<\/p>\n<p>Pour ce faire, \u00e0 la racine du projet, vous pouvez saisir ce qui suit dans votre terminal\u00a0:<\/p>\n<pre><code>$ ln -s \/vendor\/bin\/phpcs phpcs\n$ ln -s \/vendor\/bin\/phpcbf phpcbf<\/code><\/pre>\n<p>Cela vous permettra d&rsquo;ex\u00e9cuter les binaires depuis votre terminal. Pour tester est termin\u00e9, essayez la commande suivante\u00a0:<\/p>\n<pre><code>$ .\/phpcs --version<\/code><\/pre>\n<p>Et vous devriez voir une sortie comme celle-ci\u00a0:<\/p>\n<pre><code>PHP_CodeSniffer version 3.5.5 (stable) by Squiz (http:\/\/www.squiz.net)<\/code><\/pre>\n<p>Si c&rsquo;est le cas, tout est configur\u00e9 correctement.<\/p>\n<h3>3 Installez l&rsquo;extension PHP CodeSniffer<\/h3>\n<p>La prochaine \u00e9tape, sans doute la plus simple, consiste \u00e0 configurer l&rsquo;extension PHP CodeSniffer dans Code. Il existe un certain nombre d&rsquo;options que vous avez, mais j&rsquo;ai eu une bonne exp\u00e9rience avec <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ikappas.phpcs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">cette extension particuli\u00e8re<\/a>.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158884-61e6e847469e5.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-158884-61e6e847469e5.png\" alt=\"Configuration de PHP CodeSniffer par projet\"><\/a><\/p>\n<p>Une fois qu&rsquo;il est install\u00e9 et que vous avez recharg\u00e9 votre IDE, vous devriez \u00eatre pr\u00eat \u00e0 installer et \u00e0 configurer PHP CodeSniffer projet par projet.<\/p>\n<h3>4 Configurez votre espace de travail<\/h3>\n<p>Dans Code, la prochaine chose que vous voudrez faire est de configurer PHP Code Sniffer pour votre projet sp\u00e9cifique. Pour ce faire, le plus simple est de configurer un espace de travail pour votre projet.<\/p>\n<p>Vous pouvez le faire en cliquant sur le menu <strong>Fichier<\/strong>, puis sur l&rsquo; \u00e9l\u00e9ment de menu <strong>Enregistrer l&rsquo;espace de travail sous\u2026<\/strong>. Cela cr\u00e9era un <code>project.code-workspace<\/code>fichier partout o\u00f9 vous choisissez de l&rsquo;inclure.<\/p>\n<p>Si vous contr\u00f4lez la version de votre projet, je vous recommande de le conserver \u00e0 la racine de votre projet afin de pouvoir le conserver dans le contr\u00f4le de version. Ensuite, si vous ouvrez ce fichier, vous remarquerez qu&rsquo;il s&rsquo;agit de JSON et qu&rsquo;il inclut une <code>settings<\/code>directive. Dans cette directive, ajoutez les param\u00e8tres suivants\u00a0:<\/p>\n<pre><code>project.code-workspace<\/code><\/pre>\n<p>Notez ci-dessus que nous indiquons explicitement \u00e0 l&rsquo;extension o\u00f9 se trouve le chemin de l&rsquo;ex\u00e9cutable, c&rsquo;est-\u00e0-dire dans le <code>vendor<\/code>r\u00e9pertoire relatif au <code>workspace<\/code>fichier.<\/p>\n<p>Une fois que vous avez fait cela, vous devriez \u00eatre en mesure de commencer \u00e0 \u00e9crire du code et \u00e0 le faire renifler activement votre code tout en travaillant.<\/p>\n<h2>Vouloir plus?<\/h2>\n<p>Si vous \u00eates int\u00e9ress\u00e9 par un reniflement et une correction encore plus agressifs des odeurs et des probl\u00e8mes de code, je vous recommande de consulter <a href=\"https:\/\/wordpress.mediadoma.com\/fr\/compositeur-pour-wordpress-partie-2\/\" title=\"l&#039;article sur GrumPHP\">l&rsquo;article sur GrumPHP<\/a>.<\/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>Voici comment vous pouvez commencer \u00e0 configurer PHP CodeSniffer par projet en utilisant Composer, Visual Studio Code et diverses normes de codage.<\/p>\n","protected":false},"author":1,"featured_media":236922,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[893,717,832,801,841,791,862],"tags":[1167],"class_list":["post-231853","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-developpeur","category-guide-pour-les-debutants","category-php-3","category-tutoriels","category-visual-studio-code-3","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/231853","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=231853"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/231853\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/236922"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=231853"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=231853"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=231853"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}