{"id":231686,"date":"2022-12-29T11:21:00","date_gmt":"2022-12-29T08:21:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231686"},"modified":"2022-12-25T22:16:45","modified_gmt":"2022-12-25T19:16:45","slug":"ajout-de-plusieurs-normes-de-codage-avec-composer","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/ajout-de-plusieurs-normes-de-codage-avec-composer\/","title":{"rendered":"Ajout de plusieurs normes de codage avec Composer"},"content":{"rendered":"<p>C&rsquo;est une chose d&rsquo;utiliser <a href=\"https:\/\/tommcfarlin.com\/php-codesniffer-in-visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSniffer<\/a> manuellement, mais si vous utilisez un utilitaire tel que <a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a> pour v\u00e9rifier votre travail avant de le valider dans le r\u00e9f\u00e9rentiel, vous voudrez probablement utiliser la version que vous installez avec votre projet.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-159611-61e6f8881ef53.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-159611-61e6f8881ef53.png\" alt=\"Ajout de plusieurs normes de codage avec Composer\" ><\/a><\/p>\n<p>Cela suppose que :<\/p>\n<ol>\n<li>Vous installez PHP CodeSniffer localement sur votre projet,<\/li>\n<li>Vous souhaitez installer un ensemble sp\u00e9cifique de normes de codage \u00e0 ex\u00e9cuter sur votre code.<\/li>\n<\/ol>\n<p>N&rsquo;oubliez pas que cela se fait \u00e9galement dans le contexte de vouloir ex\u00e9cuter des scripts automatis\u00e9s pendant le processus de validation et dans un environnement local (par opposition \u00e0 un param\u00e8tre global) avec Composer.<\/p>\n<p>Composer offre la possibilit\u00e9 d&rsquo;\u00e9crire des scripts pendant l&rsquo;ex\u00e9cution. <a href=\"https:\/\/getcomposer.org\/doc\/articles\/scripts.md\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Du manuel<\/a> :<\/p>\n<blockquote>\n<p>Un script, selon les termes de Composer, peut \u00eatre soit un rappel PHP (d\u00e9fini comme une m\u00e9thode statique), soit n&rsquo;importe quelle commande ex\u00e9cutable en ligne de commande. Les scripts sont utiles pour ex\u00e9cuter le code personnalis\u00e9 d&rsquo;un package ou des commandes sp\u00e9cifiques au package pendant le processus d&rsquo;ex\u00e9cution de Composer.<\/p>\n<\/blockquote>\n<p>Pour installer plusieurs normes de codage avec Composer afin que nous puissions faire ce que nous avons avec GrumPHP et tout processus de pr\u00e9-commit, nous devons tirer parti des scripts <strong>pre-install-cmd<\/strong> et <strong>pre-update-cmd<\/strong>. Cela garantira que les normes de codage appropri\u00e9es sont d\u00e9finies pour le binaire au niveau du projet de PHP CodeSniffer.<\/p>\n<p><a href=\"https:\/\/gist.github.com\/tommcfarlin\/e58bd797d53cdaeb659a2e09db0b5725#file-00-add-php-cs-json\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Exemple<\/a> :<\/p>\n<pre><code>\"scripts\": {\n    \"post-install-cmd\": [\n        \"\"vendor\/bin\/phpcs\" --config-set installed_paths \/Users\/tommcfarlin\/Sync\/Projects\/wpcs\/WordPress\"\n    ],\n    \"post-update-cmd\":  [\n        \"\"vendor\/bin\/phpcs\" --config-set installed_paths \/Users\/tommcfarlin\/Sync\/Projects\/wpcs\/WordPress\"\n    ],\n},<\/code><\/pre>\n<p>Notez que dans l&rsquo;exemple ci-dessus, je m&rsquo;assure d&rsquo;ajouter les normes de codage WordPress \u00e0 PHP CodeSniffer.<\/p>\n<p>Mais vous pouvez ajouter plusieurs versions de normes de codage, <a href=\"https:\/\/gist.github.com\/tommcfarlin\/e58bd797d53cdaeb659a2e09db0b5725#file-01-add-php-cs-json\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">comme ceci\u00a0:<\/a><\/p>\n<pre><code>\"scripts\": {\n    \"post-install-cmd\": [\n        \"\"vendor\/bin\/phpcs\" --config-set installed_paths \/Users\/tommcfarlin\/Sync\/Projects\/wpcs\/WordPress-Core,\/Users\/tommcfarlin\/Sync\/Projects\/wpcs\/WordPress-VIP\"\n    ],\n    \"post-update-cmd\":  [\n        \"\"vendor\/bin\/phpcs\" --config-set installed_paths \/Users\/tommcfarlin\/Sync\/Projects\/wpcs\/WordPress-Core,\/Users\/tommcfarlin\/Sync\/Projects\/wpcs\/WordPress-VIP\"\n    ],\n},<\/code><\/pre>\n<p>Et vous pouvez ajouter toutes les autres normes que vous avez vous permettant de pointer le script \u00e0 l&#8217;emplacement appropri\u00e9 o\u00f9 ils sont install\u00e9s.<\/p>\n<p>Une fois cela fait, les standards seront appliqu\u00e9s \u00e0 PHP CodeSniffer et seront ex\u00e9cut\u00e9s pendant les processus <strong>d&rsquo;installation<\/strong> et de mise \u00e0 <strong>jour<\/strong> de Composer.<\/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>Pour installer plusieurs normes de codage avec Composer, nous devons tirer parti des scripts pre-install-cmd et pre-update-cmd.<\/p>\n","protected":false},"author":1,"featured_media":223641,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[893,717,780,748,801,841],"tags":[1167],"class_list":["post-231686","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-developpeur","category-logiciels-open-source","category-open-source-projektmanagement-2","category-php-3","category-tutoriels","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/231686","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=231686"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/231686\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/223641"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=231686"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=231686"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=231686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}