{"id":232015,"date":"2023-01-07T11:53:00","date_gmt":"2023-01-07T08:53:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232015"},"modified":"2023-01-07T11:53:56","modified_gmt":"2023-01-07T08:53:56","slug":"deboguer-wordpress-avec-ray-partie-1","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/deboguer-wordpress-avec-ray-partie-1\/","title":{"rendered":"D\u00e9boguer WordPress avec Ray, Partie 1"},"content":{"rendered":"\n<p><strong>TL; DR\u00a0:<\/strong> Cet article donne un aper\u00e7u de haut niveau du type d&rsquo;application <a href=\"https:\/\/myray.app\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Ray<\/a> et de la mani\u00e8re de le configurer pour une utilisation dans WordPress.<\/p>\n<hr \/>\n<p>Depuis que je suis impliqu\u00e9 dans le d\u00e9veloppement de WordPress, j&rsquo;ai toujours vu des d\u00e9veloppeurs &#8211; moi y compris &#8211; utiliser syst\u00e9matiquement <code>[print_r](https:\/\/www.php.net\/manual\/en\/function.print-r.php)<\/code>et <code>[var_dump](https:\/\/www.php.net\/manual\/en\/function.var-dump.php)<\/code>chaque fois qu&rsquo;ils ont besoin de voir ce qui se passe dans leur code.<\/p>\n<p>Et cela convient aux petites structures de donn\u00e9es telles que les regards sur les objets, les tableaux, etc. Ensuite, \u00e0 l&rsquo;autre extr\u00e9mit\u00e9 du spectre de d\u00e9bogage, si vous avez besoin de parcourir le code pour voir quels arguments sont pass\u00e9s dans une fonction donn\u00e9e \u00e0 partir d&rsquo;o\u00f9 et avec quelle valeur, alors utiliser quelque chose comme <a href=\"https:\/\/wordpress.mediadoma.com\/fr\/installation-de-xdebug-partie-1-le-module-xdebug\/\" title=\"Xdebug\">Xdebug<\/a> est incroyablement utile.<\/p>\n<p>Jusqu&rsquo;\u00e0 r\u00e9cemment, je ne pensais pas qu&rsquo;il y avait un juste milieu. Mais ensuite j&rsquo;ai trouv\u00e9 Ray et je l&rsquo;utilise depuis.<\/p>\n<h2>D\u00e9boguer WordPress avec Ray, Partie 1<\/h2>\n<h3>Qu&rsquo;est-ce que Ray ?<\/h3>\n<p>Avant de parler de d\u00e9bogage de WordPress avec Ray, il est utile de comprendre ce qu&rsquo;est Ray et ce qu&rsquo;il n&rsquo;est pas.<\/p>\n<p>Le premier \u00e9tant que ce n&rsquo;est pas quelque chose qui est exclusivement WordPress, donc si vous \u00eates tomb\u00e9 sur ce message en tant que quelqu&rsquo;un d&rsquo;autre dans la communaut\u00e9 PHP au sens large, c&rsquo;est quelque chose qui fonctionne toujours.<\/p>\n<p>Cela dit, supposons que vous \u00eates un d\u00e9veloppeur bas\u00e9 sur WordPress et que vous cherchez \u00e0 en savoir plus sur ce qu&rsquo;est Ray.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158304-61e6dbfceb3ea.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-158304-61e6dbfceb3ea.png\" alt=\"D\u00e9boguer WordPress avec Ray, Partie 1\"><\/a><\/p>\n<p>Tout d&rsquo;abord, bien qu&rsquo;il fournisse un exemple \u00e9l\u00e9gant de ce \u00e0 quoi ressemble votre code lorsqu&rsquo;il est affich\u00e9 sur un \u00e9cran, il offre bien plus.<\/p>\n<p>Notez que lorsque vous utilisez Ray, vous aurez besoin d&rsquo;outils suppl\u00e9mentaires, que j&rsquo;aborderai un peu plus dans un instant, mais si vous souhaitez continuer \u00e0 transf\u00e9rer des informations dans un format utilisant quelque chose de similaire \u00e0 <code>var_dump<\/code>, Ray le prend en charge. Cela le rend juste plus joli. \ud83d\ude42<\/p>\n<p>Deuxi\u00e8mement, lorsque vous invoquez Ray depuis votre code, il s&rsquo;assure que vous savez d&rsquo;o\u00f9 vient l&rsquo;appel. De cette fa\u00e7on, vous savez exactement quel fichier et quelle ligne vous regardez. Ceci est particuli\u00e8rement utile lorsque vous avez plusieurs appels.<\/p>\n<p>Troisi\u00e8mement, vous pouvez r\u00e9ellement suspendre l&rsquo;ex\u00e9cution de votre code comme vous le faites chaque fois que vous utilisez un d\u00e9bogueur r\u00e9el. Cela signifie qu&rsquo;une fois qu&rsquo;il atteint un certain point dans votre code (et cela est utile si vous remplissez une <code>switch<\/code>condition ou une <code>if<\/code>condition ou si vous utilisez, par exemple, une usine en programmation orient\u00e9e objet et que vous voulez savoir quelle instance de un objet a \u00e9t\u00e9 instanci\u00e9), vous pouvez alors arr\u00eater l&rsquo;ex\u00e9cution et avoir une meilleure id\u00e9e de ce qui se passe avec votre projet.<\/p>\n<p>Enfin, vous pouvez organiser les types de sortie en diff\u00e9rentes couleurs. Cela signifie que si vous touchez une certaine branche dans le code et que vous ne voulez pas toucher cette branche, vous pouvez la classer en rouge. De m\u00eame, vous pouvez faire de m\u00eame avec le vert, l&rsquo;orange, le violet, etc. Cela d\u00e9pend vraiment de vous et de ce que vous visez en examinant vos donn\u00e9es.<\/p>\n<h2>Utilisation de Ray dans WordPres<\/h2>\n<p>Si vous <a href=\"https:\/\/spatie.be\/docs\/ray\/v1\/installation-in-your-project\/wordpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">lisez la documentation<\/a> pour installer Ray dans WordPress, cela peut sembler un peu intimidant (surtout en fonction de votre exp\u00e9rience avec la CLI, avec Git et avec les plugins indispensables).<\/p>\n<p>Ce qui est bien, c&rsquo;est qu&rsquo;il n&rsquo;est pas n\u00e9cessaire que ce soit ainsi. Au lieu de cela, vous pouvez r\u00e9cup\u00e9rer le plugin WordPress Ray \u00e0 partir du r\u00e9f\u00e9rentiel de plugins (soit depuis <a href=\"https:\/\/wordpress.org\/plugins\/spatie-ray\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">le site,<\/a> soit depuis WordPress en fonction de vos autorisations).<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158304-61e6dc022fcee.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-158304-61e6dc022fcee.png\" alt=\"D\u00e9boguer WordPress avec Ray, Partie 1\"><\/a><\/p>\n<p>Une fois le plugin install\u00e9, vous devriez pouvoir imm\u00e9diatement commencer \u00e0 transf\u00e9rer des informations dans Ray.<\/p>\n<h3>Utiliser Git et Composer<\/h3>\n<p>Si vous choisissez d&rsquo;utiliser Git et Composer, assurez-vous que ces deux outils sont install\u00e9s sur votre syst\u00e8me, puis proc\u00e9dez comme suit.<\/p>\n<p>Tout d&rsquo;abord, clonez le d\u00e9p\u00f4t dans votre <code>mu-plugins<\/code>r\u00e9pertoire en ex\u00e9cutant la commande suivante\u00a0:<\/p>\n<p>$<code>git clone git@github.com:spatie\/wordpress-ray<\/code><\/p>\n<p>Ensuite, acc\u00e9dez \u00e0 ce r\u00e9pertoire dans votre terminal et ex\u00e9cutez\u00a0:<\/p>\n<p><code>$ composer install<\/code><\/p>\n<p>Une fois ce processus termin\u00e9, ouvrez <code>wp-config.php<\/code>et ajoutez les deux lignes suivantes\u00a0:<\/p>\n<p><code>require_once ABSPATH. 'wp-content\/mu-plugins\/wordpress-ray\/wp-ray.php';<\/code><\/p>\n<p><code>define( 'WP_ENVIRONMENT_TYPE', 'local' );<\/code><\/p>\n<p>Apr\u00e8s cela, vous pouvez commencer \u00e0 utiliser la <code>ray<\/code>fonction dans votre code. Par exemple, j&rsquo;ai la ligne de code suivante ex\u00e9cut\u00e9e dans un mod\u00e8le que j&rsquo;utilise comme d\u00e9mo pour cet article\u00a0:<\/p>\n<p><code>&lt;?php ray( wp_get_current_user() ); ?&gt;<\/code><\/p>\n<p>Ensuite, chaque fois que cette page est charg\u00e9e, l&rsquo;application Ray affiche ce qui suit\u00a0:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158304-61e6dc060b535.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-158304-61e6dc060b535.png\" alt=\"D\u00e9boguer WordPress avec Ray, Partie 1\"><\/a><\/p>\n<p>Il s&rsquo;agit \u00e9videmment d&rsquo;une information riche \u2013 une information qui peut encore \u00eatre lue par d&rsquo;autres moyens \u2013 mais de fa\u00e7on beaucoup plus \u00e9l\u00e9gante.<\/p>\n<h2>Pour la partie 2<\/h2>\n<p>Dans la partie 2 de la s\u00e9rie, j&rsquo;expliquerai comment d\u00e9marrer le d\u00e9bogage du code \u00e0 l&rsquo;aide de Ray et pourquoi j&rsquo;aime utiliser l&rsquo;application comme un terrain d&rsquo;entente entre quelque chose comme <code>[var_dump](https:\/\/www.php.net\/manual\/es\/function.var-dump.php)<\/code>et <a href=\"https:\/\/xdebug.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Xdebug<\/a>.<\/p>\n<p>De plus, je passerai en revue certaines des fonctionnalit\u00e9s sp\u00e9cifiques \u00e0 WordPress de Ray afin que vous puissiez voir en quoi c&rsquo;est plus qu&rsquo;une &quot;jolie fa\u00e7on de vider les variables&quot;.<\/p>\n<p>En fin de compte, je pense que Xdebug est toujours quelque chose qui devrait \u00eatre utilis\u00e9, mais Ray est un terrain d&rsquo;entente beaucoup plus agr\u00e9able qui fournit de nombreuses fonctionnalit\u00e9s de d\u00e9bogage solides sans avoir besoin du support complet d&rsquo;un v\u00e9ritable d\u00e9bogueur.<\/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>Il s&rsquo;agit d&rsquo;une introduction de haut niveau sur la fa\u00e7on de commencer \u00e0 d\u00e9boguer WordPress avec Ray.<\/p>\n","protected":false},"author":1,"featured_media":158305,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[893,717,832,780,748,801,841,862],"tags":[1167],"class_list":["post-232015","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-developpeur","category-guide-pour-les-debutants","category-logiciels-open-source","category-open-source-projektmanagement-2","category-php-3","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/232015","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=232015"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/232015\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/158305"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=232015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=232015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=232015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}