{"id":230827,"date":"2022-12-06T18:26:00","date_gmt":"2022-12-06T15:26:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230827"},"modified":"2022-12-07T12:18:26","modified_gmt":"2022-12-07T09:18:26","slug":"xdebugin-asentaminen-osa-1-xdebug-moduuli","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/xdebugin-asentaminen-osa-1-xdebug-moduuli\/","title":{"rendered":"Xdebugin asentaminen, osa 1: Xdebug-moduuli"},"content":{"rendered":"\n<p>T\u00e4h\u00e4n menness\u00e4 olemme k\u00e4sitelleet paljon WordPressin kanssa ty\u00f6skentelyyn ja virheenkorjaukseen liittyvi\u00e4 asioita. Ja t\u00e4m\u00e4 on erityisen totta, koska se liittyy WordPressiss\u00e4 saatavilla olevien ty\u00f6kalujen ja laajennusten kanssa ty\u00f6skentelemiseen. Jos olet juuri liittym\u00e4ss\u00e4 t\u00e4h\u00e4n tiettyyn sarjaan, varmista, ett\u00e4 olet perill\u00e4 seuraavista viesteist\u00e4:<\/p>\n<ul>\n<li><strong><a href=\"https:\/\/wordpress.mediadoma.com\/fi\/wordpressin-virhelokien-lukeminen-ja-ymmaertaeminen-osa-1\/\" title=\"WordPressin virhelokien lukeminen ja ymm\u00e4rt\u00e4minen, osa 1\">WordPressin virhelokien lukeminen ja ymm\u00e4rt\u00e4minen, osa 1<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/wordpress.mediadoma.com\/fi\/wordpressin-virhelokien-lukeminen-ja-ymmaertaeminen-osa-2\/\" title=\"WordPressin virhelokien lukeminen ja ymm\u00e4rt\u00e4minen, osa 2\">WordPressin virhelokien lukeminen ja ymm\u00e4rt\u00e4minen, osa 2<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/tommcfarlin.com\/debugging-within-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Perusvirheenkorjaus WordPressiss\u00e4<\/a><\/strong><\/li>\n<\/ul>\n<p>Muista, ett\u00e4 edellisess\u00e4 viestiss\u00e4 sanoin seuraavaa:<\/p>\n<blockquote>\n<p>Mutta jos haluat p\u00e4\u00e4st\u00e4 ammattimaisen ja k\u00e4yt\u00e4nn\u00f6llisen virheenkorjauksen maailmaan IDE:n sis\u00e4ll\u00e4, on t\u00e4rke\u00e4\u00e4 ymm\u00e4rt\u00e4\u00e4 mit\u00e4, miten ja miksi.<\/p>\n<\/blockquote>\n<p>Ja olemme vihdoin valmiita katsomaan, mit\u00e4 t\u00e4m\u00e4 vaatii. Alkuun p\u00e4\u00e4seminen tarkoittaa kuitenkin, ett\u00e4 meid\u00e4n on ymm\u00e4rrett\u00e4v\u00e4 muutamia asioita <strong><a href=\"https:\/\/xdebug.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Xdebugista<\/a><\/strong>, terminologiasta ja oltava IDE, joka on johdonmukainen kaikille t\u00e4t\u00e4 sarjaa lukeville.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162717-61e743dbd5b19.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-162717-61e743dbd5b19.png\" alt=\"Xdebugin asentaminen, osa 1: Xdebug-moduuli\"><\/a><\/p>\n<p>T\u00e4m\u00e4 siis jaetaan kahteen osaan.<\/p>\n<ul>\n<li>Ensin tarkastelemme virheenkorjaukseen tarvittavaa terminologiaa ja varmistamme, ett\u00e4 kehitysymp\u00e4rist\u00f6ss\u00e4mme on asianmukaiset IDE-asetukset,<\/li>\n<li>Seuraavaksi aiomme tarkastella, kuinka varmistaa, ett\u00e4 olemme asentaneet Xdebugin oikein ja kytkemme sen sitten kehitysymp\u00e4rist\u00f6\u00f6mme, jotta voimme saada sen toimimaan.<\/li>\n<\/ul>\n<p>Jos olet lukenut erilaista sis\u00e4lt\u00f6\u00e4 t\u00e4ss\u00e4 blogissa viime vuosien aikana, osa t\u00e4st\u00e4 saattaa tuntua tutulta. Jos ei, ei iso juttu. Muista, ett\u00e4 tavoitteena on varmistaa, ett\u00e4 olemme kaikki samalla tasolla, kun jatkamme edell\u00e4 mainittua ty\u00f6t\u00e4 ja koko sarjan loppua.<\/p>\n<p>T\u00e4m\u00e4n sanottuaan aloitetaan.<\/p>\n<h2>Xdebugin asennus, osa 1<\/h2>\n<p>Kuten edell\u00e4 mainittiin, t\u00e4m\u00e4 viestisarja palvelee yht\u00e4 kahdesta tarkoituksesta, jotka molemmat voidaan kuvata ytimekk\u00e4\u00e4sti (joista toinen kuvataan seuraavassa viestiss\u00e4):<\/p>\n<ol>\n<li>Viankorjausterminologia<\/li>\n<li>IDE:n asennus<\/li>\n<\/ol>\n<p>Vaikka monet t\u00e4t\u00e4 lukevat tuntevat jo osan terminologiasta (varsinkin jos olet aiemmin k\u00e4ytt\u00e4nyt asiakaspuolen ty\u00f6kaluja tai jopa palvelinpuolen ty\u00f6kaluja) ja sinulla on jo valittava editori, on t\u00e4rke\u00e4\u00e4 varmistaa, ett\u00e4 ainakin ty\u00f6skentelem\u00e4\u00e4n johdonmukaisella pohjalla.<\/p>\n<p>Jos olet varma taitosi kahdessa yll\u00e4 mainitussa kohdassa, seuraava viesti on todenn\u00e4k\u00f6isesti sinulle kiinnostavampi. Jos toisaalta t\u00e4m\u00e4 on siirtym\u00e4ss\u00e4 sinulle uudelle alueelle, sen pit\u00e4isi luoda perusta kaikelle, mit\u00e4 tarvitset varmistaaksesi, ett\u00e4 WordPress-projektien virheenkorjaus onnistuu.<\/p>\n<p>Lis\u00e4ksi se varmistaa, ett\u00e4 sinulla on johdonmukainen joukko ty\u00f6kaluja ty\u00f6skennell\u00e4ksesi, jotta voimme jatkaa eteenp\u00e4in vakioty\u00f6kalujen avulla luodaksemme tuottavimman mahdollisen kehitysymp\u00e4rist\u00f6n.<\/p>\n<h3>1 Vianetsint\u00e4terminologia<\/h3>\n<p>Riippuen taustastasi, voit valita, ett\u00e4 termej\u00e4 on viidest\u00e4 seitsem\u00e4\u00e4n, joista jokainen liittyy virheenkorjaukseen. Olen hahmotellut sen aiemmin muissa t\u00e4m\u00e4n sivuston viesteiss\u00e4. Joka kerta olen kuitenkin tehnyt niin v\u00e4h\u00e4n eri tavalla sis\u00e4ll\u00f6st\u00e4.<\/p>\n<p>T\u00e4ss\u00e4 viestiss\u00e4 pyrin tekem\u00e4\u00e4n t\u00e4st\u00e4 mahdollisimman tarkkaa ja t\u00e4sm\u00e4llist\u00e4, jotta se tarjoaa johdonmukaisen viittauksen, jota voimme k\u00e4ytt\u00e4\u00e4 tulevissa viesteiss\u00e4 (ja ty\u00f6ss\u00e4). Nykyisess\u00e4 muodossaan t\u00e4ss\u00e4 ovat termit, jotka mielest\u00e4ni kaikkien pit\u00e4isi tiet\u00e4\u00e4, koska ne liittyv\u00e4t heid\u00e4n virheenkorjaukseensa.<\/p>\n<ol>\n<li><strong>Katkopisteet<\/strong>. N\u00e4it\u00e4 voidaan pit\u00e4\u00e4 virheenkorjauksen peruslohkoina. Yksinkertaisesti sanottuna ne ovat paikkoja koodissa, joiden suorittamisen haluat keskeytt\u00e4\u00e4, jotta voit tutkia, mit\u00e4 koodissa tapahtuu. Ehk\u00e4 t\u00e4m\u00e4 liittyy muuttujiin; ehk\u00e4 se liittyy toimintoihin, ehk\u00e4 se liittyy johonkin muuhun. Siit\u00e4 huolimatta t\u00e4m\u00e4 on t\u00e4rke\u00e4\u00e4, koska sanot ohjelmalle &quot;hei, haluan lopettaa ohjelman suorittamisen t\u00e4\u00e4ll\u00e4 t\u00e4ll\u00e4 rivill\u00e4, jotta voin tutkia ohjelman tilan.&quot;<\/li>\n<li><strong>Kellot<\/strong>. N\u00e4m\u00e4 ovat funktiokutsuja, muuttujia tai muita paikkoja koodissa, jotka voidaan asettaa siten, ett\u00e4 voimme kirjaimellisesti n\u00e4hd\u00e4 arvojen muuttuvan suorituksen aikana. Jos puhumme funktioista, voisimme viitata argumenttien arvoihin, kun ne asetetaan ja niit\u00e4 k\u00e4sitell\u00e4\u00e4n funktiossa. Jos puhumme muuttujista, puhumme muuttujista; silloin puhumme arvoista, joita ne sis\u00e4lt\u00e4v\u00e4t miss\u00e4 tahansa vaiheessa ohjelman suorittamisen aikana. T\u00e4m\u00e4 voi tapahtua, kun asetamme tietyn keskeytyskohdan, tai se voi tapahtua aina, kun siirrymme koodin l\u00e4pi ja pid\u00e4mme silm\u00e4ll\u00e4 muuttujan tilaa koko ohjelman suorituksen ajan.<\/li>\n<li><strong>Aloita<\/strong>. T\u00e4m\u00e4 toiminto yksinkertaisesti k\u00e4skee debuggerin aloittamaan verkkopalvelimen valvonnan. Pohjimmiltaan se pit\u00e4\u00e4 silm\u00e4ll\u00e4 kaikkea, mit\u00e4 ohjelman sis\u00e4ll\u00e4 tapahtuu, ja jos keskeytyspisteit\u00e4 on asetettu, se on valmis pys\u00e4ytt\u00e4m\u00e4\u00e4n suorituksen ja antamaan meille mahdollisuuden katsoa, \u200b\u200bmit\u00e4 ohjelman tilassa tapahtuu. Voit teknisesti aloittaa virheenkorjausistunnon etk\u00e4 tee mit\u00e4\u00e4n. Se ei ole aivan tuottavaa, mutta se on mahdollista.<\/li>\n<li><strong>Astu sis\u00e4\u00e4n<\/strong>. Oletetaan hetkeksi, ett\u00e4 keskeytyspiste on asetettu juuri funktiokutsun yl\u00e4puolelle tai funktiokutsulle. T\u00e4m\u00e4n avulla voimme siirty\u00e4 funktioon seurataksemme kunkin argumentin arvoa, kuinka niit\u00e4 k\u00e4sitell\u00e4\u00e4n funktiossa, mit\u00e4 funktio palauttaa (jos mit\u00e4\u00e4n) ja kaikkea, mit\u00e4 funktiossa tapahtuu.<\/li>\n<li><strong>Astu yli<\/strong>. Toisaalta oletetaan, ett\u00e4 k\u00e4yt\u00e4t toimintoa etk\u00e4 ole varma, haluatko sukeltaa toimintoon. Ehk\u00e4 olet kiinnostunut vain arvoista, jotka funktio palauttaa tai ohjelman tilasta funktion suorittamisen j\u00e4lkeen, mutta et ole kiinnostunut siit\u00e4, mit\u00e4 funktiossa on tapahtunut. Pohjimmiltaan kohtelet sit\u00e4 mustana laatikkona. Sit\u00e4 tarkoittaa funktion ylitt\u00e4minen. Eli annat toiminnon k\u00e4yd\u00e4 ilman, ett\u00e4 astut siihen katsomaan sen toimintaa.<\/li>\n<li><strong>Astu ulos<\/strong>. T\u00e4m\u00e4 virheenkorjauksen osa on hy\u00f6dyllinen aina, kun huomaat olevansa funktiossa ja olet valmis palaamaan suorituksen p\u00e4\u00e4riville, koska olet n\u00e4hnyt kaiken, mit\u00e4 sinun tarvitsee n\u00e4hd\u00e4. Ehk\u00e4 olet n\u00e4hnyt muuttujan arvojen muuttuvan, ehk\u00e4 olet n\u00e4hnyt algoritmin tekev\u00e4n tarpeeksi ty\u00f6t\u00e4 tiet\u00e4\u00e4ksesi, ett\u00e4 se on tehnyt mit\u00e4 haluat. Joka tapauksessa t\u00e4m\u00e4 antaa sinun astua pois osuvasti nimetyst\u00e4 funktiosta ja siirty\u00e4 sitten toimintoon<\/li>\n<li><strong>Pys\u00e4hdy<\/strong>. Aivan kuten start k\u00e4skee debuggerin <strong>alkamaan<\/strong> kuunnella palvelinta, kiinnitt\u00e4m\u00e4\u00e4n huomiota keskeytyskohtiin ja n\u00e4ytt\u00e4m\u00e4\u00e4n tietoja sovelluksen edistymisest\u00e4, stop toimii juuri p\u00e4invastoin. Se kertoo virheenkorjaajalle, ett\u00e4 olemme kuunnelleet, katsoneet ja kiinnitt\u00e4neet huomiota ohjelman tilaan. T\u00e4m\u00e4 ei tarkoita, ett\u00e4 ohjelma pys\u00e4htyy \u2013 vain debuggeri. Joten jos olet lopettanut kiinnitt\u00e4misen kaikkiin debuggerin tarjoamiin tietoihin, pystyt todenn\u00e4k\u00f6isesti pys\u00e4ytt\u00e4m\u00e4\u00e4n virheenkorjauksen.<\/li>\n<\/ol>\n<p>Lopuksi haluan huomauttaa, ett\u00e4 PHP on ainutlaatuinen siin\u00e4 mieless\u00e4, ett\u00e4 se tarjoaa erilaisia \u200b\u200bjulkisesti saatavilla olevia muuttujia, kuten <strong><a href=\"https:\/\/secure.php.net\/manual\/en\/reserved.variables.get.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">$<\/a> _GET, $<\/strong> <a href=\"https:\/\/secure.php.net\/manual\/en\/reserved.variables.post.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">_POST<\/a>, <a href=\"https:\/\/secure.php.net\/manual\/en\/reserved.variables.request.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">$_REQUEST<\/a> ja niin edelleen. N\u00e4m\u00e4 ovat my\u00f6s k\u00e4ytett\u00e4viss\u00e4mme olevia muuttujia, joita voimme katsella. Se ei rajoitu vain siihen, mit\u00e4 olemme kirjoittaneet koodiimme.<\/p>\n<p>T\u00e4m\u00e4 on erityisen hy\u00f6dyllist\u00e4, koska tarkastelemme tietoja sivujen uudelleenlatauksista, Ajax-pyynn\u00f6ist\u00e4 (kuten GET- ja POST-toimintojen aikana) ja niin edelleen.<\/p>\n<h3>2 Xdebugin asentaminen<\/h3>\n<p>Vaikka se on todenn\u00e4k\u00f6isesti ilmeist\u00e4 t\u00e4m\u00e4n sarjan aiemmista viesteist\u00e4, aion k\u00e4ytt\u00e4\u00e4 <strong><a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Visual Studio<\/a><\/strong> Codea valintani IDE:n\u00e4. Jos sinulla ei ole sellaista, suosittelen t\u00e4t\u00e4. Jos sinulla on kuitenkin IDE, jonka kanssa olet mukava k\u00e4ytt\u00e4\u00e4, suosittelen t\u00e4t\u00e4.<\/p>\n<ul>\n<li>Koodi on jatkuvasti kehitteill\u00e4,<\/li>\n<li>on aktiivinen laajennustalous,<\/li>\n<li>toimii hyvin useiden eri kielten, ty\u00f6kalujen ja niin edelleen,<\/li>\n<li>on kevyt ja leikkii hyvin WordPress-kehityksess\u00e4 k\u00e4ytett\u00e4vien eri asioiden kanssa (kuten PHP, HTML ja JavaScript).<\/li>\n<\/ul>\n<p>Lis\u00e4ksi <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Codessa<\/a><\/strong> on my\u00f6s vankka tuki Xdebugille. Varmistaaksemme, ett\u00e4 debuggeri on asennettu oikein, meid\u00e4n on kuitenkin varmistettava, ett\u00e4 laajennus on asennettu PHP:n asennuksen yhteydess\u00e4, ett\u00e4 se on saatavilla koko j\u00e4rjestelm\u00e4ss\u00e4mme ja ett\u00e4 se voidaan suorittaa IDE:ss\u00e4mme. Aiomme tehd\u00e4 t\u00e4m\u00e4n, mutta ensin meid\u00e4n on varmistettava, ett\u00e4 Xdebug on asennettu oikein.<\/p>\n<h4>Xdebugin asennus<\/h4>\n<p>Xdebugin asentaminen on helppoa. P\u00e4\u00e4te-istunnossasi sinun on suoritettava <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-16-install-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">seuraava komento:<\/a><\/strong><\/p>\n<p>Kun olet tehnyt sen, huomaat useita asioita tapahtuvan p\u00e4\u00e4teikkunassa asennuksen aikana. Ellet ole erityisen kiinnostunut, sinun ei tarvitse huolehtia siit\u00e4, mit\u00e4 se tekee, ennen kuin se palauttaa sinut komentokehotteeseen.<\/p>\n<p>T\u00e4ss\u00e4 vaiheessa Xdebug-moduuli on asennettu; Sinun on kuitenkin kerrottava PHP:lle, ett\u00e4 se on asennettu ja mist\u00e4 se l\u00f6yt\u00e4\u00e4 moduulin.<\/p>\n<p>Jotta voit asentaa laajennuksen nykyiseen PHP-versioosi, on t\u00e4rke\u00e4\u00e4 tiet\u00e4\u00e4, mink\u00e4 PHP-version olet asentanut. Jos k\u00e4yt\u00e4t paketinhallintaa, siin\u00e4 saattaa olla useita versioita, ja sinun on kerrottava kyseisen version asetustiedostolle, mist\u00e4 moduuli l\u00f6ytyy.<\/p>\n<p>Toisaalta, jos sinulla on yksi versio asennettuna, sinun on kerrottava yhdelle PHP-versiolle, mihin se on asennettu. Ensinn\u00e4kin voit selvitt\u00e4\u00e4, miss\u00e4 Xdebug on olemassa tiedostoj\u00e4rjestelm\u00e4ss\u00e4 <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-17-find-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e4ll\u00e4 komennolla:<\/a><\/strong><\/p>\n<p>Sitten sinun on p\u00e4ivitett\u00e4v\u00e4 PHP-asennuksesi m\u00e4\u00e4ritystiedosto. Voit tehd\u00e4 t\u00e4m\u00e4n suorittamalla <strong>php -v<\/strong> komentorivilt\u00e4 ja se kertoo, mik\u00e4 versio sinulla on k\u00e4yt\u00f6ss\u00e4. T\u00e4\u00e4lt\u00e4 sinun on l\u00f6ydett\u00e4v\u00e4 k\u00e4ytt\u00e4m\u00e4si PHP-version alustustiedosto. Jos suoritat <strong>php -v:n,<\/strong> palaat jotain t\u00e4m\u00e4n kaltaista:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162717-61e743e0189a7.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-162717-61e743e0189a7.png\" alt=\"Xdebugin asentaminen, osa 1: Xdebug-moduuli\"><\/a><\/p>\n<p>T\u00e4m\u00e4 kertoo meille, ett\u00e4 k\u00e4yt\u00e4mme PHP 7.1.19:\u00e4\u00e4 (vaikka versiosi voi vaihdella). T\u00e4st\u00e4 l\u00e4htien tied\u00e4mme etsi\u00e4 tietty\u00e4 PHP-asetustiedostoa t\u00e4lle PHP-versiolle. Voit tehd\u00e4 t\u00e4m\u00e4n etsim\u00e4ll\u00e4 <strong>php.ini<\/strong> j\u00e4rjestelm\u00e4si hakemistosta \/usr\/local\/etc\/php\/7.1\/ (vaikka tarkka versionumero voi vaihdella).<\/p>\n<p>Avaa sielt\u00e4 tiedosto ja lis\u00e4\u00e4 sitten <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-18-reference-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">seuraava koodirivi:<\/a><\/strong><\/p>\n<pre><code>zend_extension=\"\/usr\/local\/lib\/php\/pecl\/20160303\/xdebug.so\"<\/code><\/pre>\n<p>T\u00e4m\u00e4 kertoo PHP:lle, miss\u00e4 Xdebug sijaitsee, jotta sit\u00e4 voidaan k\u00e4ytt\u00e4\u00e4 ty\u00f6ss\u00e4si.<\/p>\n<h4>Asennuksen testaus<\/h4>\n<p>Varmistaaksesi, ett\u00e4 asennus on sujunut oikein, voit suorittaa seuraavan koodin <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-19-verify-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">p\u00e4\u00e4tteess\u00e4si:<\/a><\/strong><\/p>\n<p>Ja sitten sinun pit\u00e4isi n\u00e4hd\u00e4 seuraavanlainen tulos n\u00e4yt\u00f6lle:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162717-61e743e0189a7.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-162717-61e743e0189a7.png\" alt=\"Xdebugin asentaminen, osa 1: Xdebug-moduuli\"><\/a><\/p>\n<p>Huomaa, ett\u00e4 yll\u00e4 olevassa kuvakaappauksessa n\u00e4et seuraavan:<\/p>\n<blockquote>\n<p>Xdebug v2.6.0:lla, tekij\u00e4noikeus (c) 2002-2018, Derick Rethans<\/p>\n<\/blockquote>\n<p>T\u00e4m\u00e4 tarkoittaa, ett\u00e4 moduuli on asennettu ja PHP on tietoinen siit\u00e4.<\/p>\n<h2>IDE:n m\u00e4\u00e4ritt\u00e4minen<\/h2>\n<p>Seuraavassa viestiss\u00e4 tarkastelemme Xdebugin yhdist\u00e4mist\u00e4 IDE:hen. Olettaen, ett\u00e4 olet noudattanut t\u00e4m\u00e4n viestin vaiheita ja ett\u00e4 kaikki on sujunut hyvin, sinun pit\u00e4isi olla hyv\u00e4 edet\u00e4 WordPress-projektien virheenkorjauksen valmistelussa.<\/p>\n<p>Ennen kuin saamme sen toimimaan IDE:ss\u00e4, se ei kuitenkaan ole yht\u00e4 hy\u00f6dyllist\u00e4 (tai se on vaikeampaa kuin sen pit\u00e4\u00e4 olla). Joten ensi viikolla tarkastelemme, miten se tehd\u00e4\u00e4n.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e4ss\u00e4 viestiss\u00e4 k\u00e4sittelemme Xdebugin asentamista niin, ett\u00e4 se on saatavilla PHP-asennuksessamme. Lopulta t\u00e4m\u00e4 antaa meille mahdollisuuden korjata koodimme IDE:st\u00e4.<\/p>\n","protected":false},"author":1,"featured_media":236541,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[719,895,803],"tags":[1166],"class_list":["post-230827","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-koodi","category-php-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/230827","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=230827"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/230827\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/236541"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=230827"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=230827"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=230827"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}