{"id":232297,"date":"2023-01-07T11:21:00","date_gmt":"2023-01-07T08:21:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232297"},"modified":"2023-01-07T11:23:33","modified_gmt":"2023-01-07T08:23:33","slug":"debug-di-wordpress-con-ray-parte-1","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/debug-di-wordpress-con-ray-parte-1\/","title":{"rendered":"Debug di WordPress con Ray, parte 1"},"content":{"rendered":"\n<p><strong>TL; DR:<\/strong> questo post offre una panoramica di alto livello sul tipo di app <a href=\"https:\/\/myray.app\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Ray<\/a> e su come configurarla per l&#8217;uso in WordPress.<\/p>\n<hr \/>\n<p>Da quando sono stato coinvolto nello sviluppo di WordPress, ho visto costantemente gli sviluppatori &#8211; me compreso &#8211; utilizzare costantemente <code>[print_r](https:\/\/www.php.net\/manual\/en\/function.print-r.php)<\/code>e <code>[var_dump](https:\/\/www.php.net\/manual\/en\/function.var-dump.php)<\/code>ogni volta che hanno bisogno di vedere cosa sta succedendo all&#8217;interno del loro codice.<\/p>\n<p>E questo va bene per strutture di dati pi\u00f9 piccole come sguardi a oggetti, array e cos\u00ec via. Quindi, dall&#8217;altra parte dello spettro di debug, se \u00e8 necessario scorrere il codice per vedere quali argomenti vengono passati in una determinata funzione da dove e con quale valore, utilizzare qualcosa come <a href=\"https:\/\/wordpress.mediadoma.com\/it\/installazione-di-xdebug-parte-1-il-modulo-xdebug\/\" title=\"Xdebug\">Xdebug<\/a> \u00e8 incredibilmente utile.<\/p>\n<p>Fino a poco tempo, non pensavo ci fosse una via di mezzo. Ma poi ho trovato Ray e da allora lo uso.<\/p>\n<h2>Debug di WordPress con Ray, parte 1<\/h2>\n<h3>Cos&#8217;\u00e8 Ray?<\/h3>\n<p>Prima di parlare del debug di WordPress con Ray, vale la pena capire cos&#8217;\u00e8 Ray e cosa non \u00e8.<\/p>\n<p>Il primo \u00e8 che non \u00e8 qualcosa che \u00e8 esclusivamente WordPress, quindi se ti sei imbattuto in questo post come qualcun altro nella pi\u00f9 ampia comunit\u00e0 PHP \u00e8 qualcosa che sta ancora lavorando per verificare.<\/p>\n<p>Detto questo, supponiamo che tu sia uno sviluppatore basato su WordPress e stai cercando di saperne di pi\u00f9 su cosa tratta 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=\"Debug di WordPress con Ray, parte 1\"><\/a><\/p>\n<p>Innanzitutto, sebbene fornisca un elegante esempio di come appare il tuo codice quando viene scaricato su uno schermo, offre molto di pi\u00f9.<\/p>\n<p>Nota che quando usi Ray, avrai bisogno di alcuni strumenti aggiuntivi, che tratter\u00f2 un po&#8217; di pi\u00f9 tra un momento, ma se vuoi continuare a scaricare le informazioni in un formato usando qualcosa di simile a <code>var_dump<\/code>, Ray lo supporta. Lo fa sembrare pi\u00f9 bello. \ud83d\ude42<\/p>\n<p>In secondo luogo, quando invochi Ray dall&#8217;interno del tuo codice, si assicurer\u00e0 di sapere da dove proviene la chiamata. In questo modo, sai esattamente quale file e quale riga stai guardando. Ci\u00f2 \u00e8 utile soprattutto quando si hanno pi\u00f9 chiamate.<\/p>\n<p>Terzo, puoi effettivamente mettere in pausa l&#8217;esecuzione del tuo codice proprio come fai ogni volta che utilizzi un vero debugger. Ci\u00f2 significa che una volta che raggiunge un certo punto nel codice (e questo \u00e8 utile se stai raggiungendo una <code>switch<\/code>condizione o una <code>if<\/code>condizione o se stai usando, diciamo, una fabbrica nella programmazione orientata agli oggetti e vuoi sapere quale istanza di un oggetto \u00e8 stato istanziato), quindi puoi interrompere l&#8217;esecuzione e avere un&#8217;idea migliore di cosa sta succedendo con il tuo progetto.<\/p>\n<p>Infine, puoi organizzare i tipi di output in vari colori. Ci\u00f2 significa che se colpisci un determinato ramo nel codice e non vuoi colpire quel ramo, puoi classificarlo come rosso. Allo stesso modo, puoi fare lo stesso con verde, arancione, viola e altro. Dipende davvero da te e da cosa miri a ottenere guardando i tuoi dati.<\/p>\n<h2>Utilizzo di Ray in WordPres<\/h2>\n<p>Se <a href=\"https:\/\/spatie.be\/docs\/ray\/v1\/installation-in-your-project\/wordpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">leggi i documenti<\/a> per l&#8217;installazione di Ray in WordPress, pu\u00f2 sembrare un po&#8217; intimidatorio (soprattutto a seconda della tua esperienza con la CLI, con Git e con i plugin indispensabili).<\/p>\n<p>La cosa bella \u00e8 che non deve essere cos\u00ec. Invece, puoi prendere il WordPress Ray Plugin dal repository dei plugin (dal <a href=\"https:\/\/wordpress.org\/plugins\/spatie-ray\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">sito<\/a> o da WordPress a seconda delle tue autorizzazioni).<\/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=\"Debug di WordPress con Ray, parte 1\"><\/a><\/p>\n<p>Una volta che il plugin \u00e8 stato installato, dovresti essere in grado di iniziare immediatamente a scaricare le informazioni in Ray.<\/p>\n<h3>Utilizzo di Git e Composer<\/h3>\n<p>Se scegli di utilizzare Git e Composer, assicurati che questi due strumenti siano installati sul tuo sistema, quindi procedi come segue.<\/p>\n<p>Innanzitutto, clona il repository nella tua <code>mu-plugins<\/code>directory eseguendo il seguente comando:<\/p>\n<p>$<code>git clone git@github.com:spatie\/wordpress-ray<\/code><\/p>\n<p>Quindi, vai a quella directory nel tuo terminale ed esegui:<\/p>\n<p><code>$ composer install<\/code><\/p>\n<p>Una volta terminato il processo, apri <code>wp-config.php<\/code>e aggiungi le seguenti due righe:<\/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>Successivamente, puoi iniziare a utilizzare la <code>ray<\/code>funzione nel tuo codice. Ad esempio, ho la seguente riga di codice in esecuzione in un modello che sto usando come demo per questo articolo:<\/p>\n<p><code>&lt;?php ray( wp_get_current_user() ); ?&gt;<\/code><\/p>\n<p>Quindi, ogni volta che questa pagina viene caricata, l&#8217;app Ray visualizzer\u00e0 quanto segue:<\/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=\"Debug di WordPress con Ray, parte 1\"><\/a><\/p>\n<p>Si tratta ovviamente di informazioni ricche \u2013 informazioni che possono ancora essere lette con altri mezzi \u2013 ma in un modo molto pi\u00f9 elegante.<\/p>\n<h2>Per la parte 2<\/h2>\n<p>Nella parte 2 della serie, tratter\u00f2 come iniziare a eseguire il debug del codice utilizzando Ray e perch\u00e9 mi piace usare l&#8217;app come via di mezzo tra qualcosa come <code>[var_dump](https:\/\/www.php.net\/manual\/es\/function.var-dump.php)<\/code>e <a href=\"https:\/\/xdebug.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Xdebug<\/a>.<\/p>\n<p>Inoltre, esaminer\u00f2 alcune delle funzionalit\u00e0 specifiche di WordPress di Ray in modo che tu possa vedere come questo sia pi\u00f9 di &quot;un bel modo per scaricare le variabili&quot;.<\/p>\n<p>In definitiva, penso che Xdebug sia ancora qualcosa che dovrebbe essere usato, ma Ray \u00e8 una via di mezzo molto pi\u00f9 piacevole che fornisce molte solide funzionalit\u00e0 di debug senza aver bisogno del supporto completo di un vero debugger.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Questa \u00e8 un&#8217;introduzione di alto livello su come avviare il debug di WordPress con 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":[896,835,751,804,783,720,844,865],"tags":[1168],"class_list":["post-232297","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codice","category-guida-per-principianti","category-open-source-projektmanagement-3","category-php-6","category-software-open-source","category-sviluppatore","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/232297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=232297"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/232297\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/158305"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=232297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=232297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=232297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}