{"id":230241,"date":"2022-12-06T18:24:00","date_gmt":"2022-12-06T15:24:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230241"},"modified":"2022-12-07T12:18:25","modified_gmt":"2022-12-07T09:18:25","slug":"xdebugi-installimine-1-osa-xdebugi-moodul","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/xdebugi-installimine-1-osa-xdebugi-moodul\/","title":{"rendered":"Xdebugi installimine, 1. osa: Xdebugi moodul"},"content":{"rendered":"\n<p>N\u00fc\u00fcdseks oleme WordPressiga t\u00f6\u00f6tamise ja silumise osas palju valdkondi k\u00e4sitlenud. Ja see kehtib eriti WordPressis saadaolevate t\u00f6\u00f6riistade ja pistikprogrammide kasutamise kohta. Kui liitute just selle konkreetse sarjaga, veenduge, et oleksite kursis j\u00e4rgmiste postitustega:<\/p>\n<ul>\n<li><strong><a href=\"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-vealogide-lugemine-ja-moistmine-1-osa\/\" title=\"WordPressi vealogide lugemine ja m\u00f5istmine, 1. osa\">WordPressi vealogide lugemine ja m\u00f5istmine, 1. osa<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-vealogide-lugemine-ja-moistmine-2-osa\/\" title=\"WordPressi vealogide lugemine ja m\u00f5istmine, 2. osa\">WordPressi vealogide lugemine ja m\u00f5istmine, 2. osa<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/tommcfarlin.com\/debugging-within-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">P\u00f5hiline silumine WordPressis<\/a><\/strong><\/li>\n<\/ul>\n<p>Eelmises postituses meenutage, et \u00fctlesin j\u00e4rgmist:<\/p>\n<blockquote>\n<p>Kuid kui soovite oma IDE-s siseneda professionaalse ja praktilise silumise maailma, on oluline m\u00f5ista, mida, kuidas ja miks.<\/p>\n<\/blockquote>\n<p>Ja l\u00f5puks oleme valmis vaatama, mida see n\u00f5uab. Alustamine t\u00e4hendab aga seda, et peame m\u00f5istma m\u00f5ningaid asju <strong><a href=\"https:\/\/xdebug.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Xdebugi<\/a><\/strong> kohta, terminoloogiat ja omama IDE-d, mis on j\u00e4rjepidev k\u00f5igile, kes seda konkreetset sarja loevad.<\/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=\"Xdebugi installimine, 1. osa: Xdebugi moodul\"><\/a><\/p>\n<p>Seega jagatakse see kaheks osaks.<\/p>\n<ul>\n<li>Esiteks vaatame silumiseks vajalikku terminoloogiat ja veendume, et meie arenduskeskkonnas on \u00f5ige IDE seadistus,<\/li>\n<li>J\u00e4rgmisena uurime, kuidas tagada, et oleme Xdebugi \u00f5igesti installinud ja seej\u00e4rel \u00fchendada see meie arenduskeskkonda, et saaksime selle t\u00f6\u00f6le panna.<\/li>\n<\/ul>\n<p>Kui olete viimastel aastatel lugenud selle ajaveebi mitmek\u00fclgset sisu, v\u00f5ib osa sellest tunduda tuttav. Kui ei, siis pole suurt midagi. Pidage meeles, et eesm\u00e4rk on tagada, et oleme k\u00f5ik samal tasemel, kui j\u00e4tkame \u00fclalmainitud t\u00f6\u00f6d ja kogu \u00fclej\u00e4\u00e4nud sarja.<\/p>\n<p>Seda \u00f6eldes alustame.<\/p>\n<h2>Xdebugi installimine, 1. osa<\/h2>\n<p>Nagu eespool mainitud, teenib see postituste komplekt \u00fchte kahest eesm\u00e4rgist, mida m\u00f5lemat saab l\u00fchidalt kirjeldada (teine \u200b\u200bneist kirjeldatakse j\u00e4rgmises postituses):<\/p>\n<ol>\n<li>Silumisterminoloogia<\/li>\n<li>IDE installimine<\/li>\n<\/ol>\n<p>Kuigi paljud seda lugevad tunnevad juba m\u00f5nda terminoloogiat (eriti kui olete varem kasutanud kliendipoolseid t\u00f6\u00f6riistu v\u00f5i isegi serveripoolseid t\u00f6\u00f6riistu) ja teil on juba valitud toimetaja, on oluline veenduda, et me v\u00e4hemalt t\u00f6\u00f6tades j\u00e4rjepideva alusega.<\/p>\n<p>Kui olete oma oskustes kindel kahes \u00fclalmainitud punktis, on j\u00e4rgmine postitus t\u00f5en\u00e4oliselt teie jaoks huvitavam. Teisest k\u00fcljest, kui see on teie jaoks uuele territooriumile j\u00f5udmas, peaks see panema aluse k\u00f5igele, mida vajate, et tagada projektide edukas silumine WordPressis.<\/p>\n<p>Lisaks tagab see, et teil on t\u00f6\u00f6tamiseks j\u00e4rjepidev t\u00f6\u00f6riistakomplekt, et saaksime j\u00e4tkata standardsete t\u00f6\u00f6riistade komplektiga, et luua v\u00f5imalikult produktiivne arenduskeskkond.<\/p>\n<h3>1 Silumisterminoloogia<\/h3>\n<p>S\u00f5ltuvalt teie taustast v\u00f5ite arvata, et seal on viis kuni seitse terminit, millest iga\u00fcks on seotud silumisega. Olen seda varem kirjeldanud selle saidi teistes postitustes. Iga kord olen aga teinud seda veidi erineva sisuga.<\/p>\n<p>Selle postituse eesm\u00e4rk on muuta see v\u00f5imalikult t\u00e4pseks ja t\u00e4pseks, et see annaks j\u00e4rjepideva viite, mida saaksime tulevastes postitustes (ja t\u00f6\u00f6s) kasutada. Praegusel kujul on siin terminid, mida minu arvates peaksid k\u00f5ik teadma, kuna see on seotud nende siluriga.<\/p>\n<ol>\n<li><strong>Katkestuspunktid<\/strong>. Neid v\u00f5ib pidada silumise p\u00f5hiplokkideks. Lihtsamalt \u00f6eldes on need kohad koodis, mille t\u00e4itmise soovite peatada, et saaksite koodis toimuvat uurida. V\u00f5ib-olla on see seotud muutujatega; v\u00f5ib-olla on see seotud funktsioonidega, v\u00f5ib-olla on see seotud millegi muuga. Sellest hoolimata on see oluline, kuna \u00fctlete programmile: &quot;Tere, ma tahan peatada programmi t\u00e4itmise siinsamas sellel real, et saaksin programmi olekut uurida.&quot;<\/li>\n<li><strong>Kellad<\/strong>. Need on funktsioonikutsed, muutujad v\u00f5i muud kohad koodis, mis v\u00f5ivad olla seadistatud nii, et v\u00f5ime s\u00f5na otseses m\u00f5ttes n\u00e4ha v\u00e4\u00e4rtuste muutumist t\u00e4itmise ajal. Kui me r\u00e4\u00e4gime funktsioonidest, siis v\u00f5iksime viidata argumentide v\u00e4\u00e4rtustele, kuna need on funktsioonis seatud ja nendega manipuleeritud. Kui me r\u00e4\u00e4gime muutujatest, siis me r\u00e4\u00e4gime muutujatest; siis r\u00e4\u00e4gime v\u00e4\u00e4rtustest, mida nad programmi t\u00e4itmise mis tahes punktis hoiavad. See v\u00f5ib juhtuda siis, kui seame konkreetse katkestuspunkti, v\u00f5i siis, kui astume l\u00e4bi koodi ja hoiame muutuja olekul kogu programmi t\u00e4itmise ajal silma peal.<\/li>\n<li><strong>Alusta<\/strong>. See toiming lihtsalt k\u00e4sib siluril hakata veebiserverit j\u00e4lgima. P\u00f5him\u00f5tteliselt hoiab see silma peal k\u00f5igel, mis programmis toimub, ja kui katkestuspunktid on seatud, on see valmis t\u00e4itmise peatama ja v\u00f5imaldab meil heita pilgu programmi olekuga toimuvale. Saate tehniliselt alustada silumisseanssi ja mitte midagi teha. See pole just produktiivne, aga v\u00f5imalik.<\/li>\n<li><strong>Astu sisse<\/strong>. Oletame hetkeks, et sul on katkestuspunkt seatud just funktsioonikutse kohale v\u00f5i funktsiooni kutsele. See v\u00f5imaldab meil siseneda funktsiooni, et j\u00e4lgida iga argumendi v\u00e4\u00e4rtust, seda, kuidas neid funktsioonis manipuleeritakse, mida funktsioon tagastab (kui \u00fcldse) ja k\u00f5ike, mis funktsiooni sees toimub.<\/li>\n<li><strong>Astu \u00fcle<\/strong>. Teisest k\u00fcljest eeldage, et k\u00e4ite funktsiooni l\u00e4bi ega ole kindel, kas soovite funktsiooni sukelduda. V\u00f5ib-olla huvitavad teid ainult v\u00e4\u00e4rtused, mille funktsioon tagastab, v\u00f5i programmi olek p\u00e4rast funktsiooni k\u00e4ivitamist, kuid teid ei huvita funktsiooni sees toimunu. Sisuliselt k\u00e4sitlete seda kui musta kasti. Seda t\u00e4hendab funktsioonist \u00fcle astumine. See t\u00e4hendab, et lasete funktsioonil t\u00f6\u00f6tada, ilma et peaksite selle toimima.<\/li>\n<li><strong>Astu v\u00e4lja<\/strong>. See konkreetne silumise aspekt on kasulik alati, kui leiate end m\u00f5nest funktsioonist ja olete valmis naasma p\u00f5hireale, kuna olete n\u00e4inud k\u00f5ike, mida vajate. V\u00f5ib-olla olete n\u00e4inud muutuja v\u00e4\u00e4rtuste muutumist, v\u00f5ib-olla olete n\u00e4inud algoritmi tegemas piisavalt t\u00f6\u00f6d, et teada saada, et see on tehtud, mida soovite. Igal juhul v\u00f5imaldab see teil sobiva nimega funktsioonist v\u00e4lja astuda ja seej\u00e4rel liikuda funktsiooni<\/li>\n<li><strong>L\u00f5peta<\/strong>. Nii nagu start k\u00e4sib siluril <strong>hakata<\/strong> serverit kuulama, p\u00f6\u00f6rama t\u00e4helepanu katkestuspunktidele ja kuvama teavet rakenduse edenemise kohta, toimib stopp just vastupidi. See annab silurile teada, et oleme kuulamise, vaatamise ja programmi olekule t\u00e4helepanu p\u00f6\u00f6ranud. See ei t\u00e4henda, et programm peatuks \u2013 lihtsalt silur. Nii et kui olete l\u00f5petanud kogu siluri pakutava teabe t\u00e4helepanu p\u00f6\u00f6ramise, saate t\u00f5en\u00e4oliselt siluri peatada.<\/li>\n<\/ol>\n<p>Viimane m\u00e4rkus, mille tahaksin teha, on see, et PHP on ainulaadne selle poolest, et see pakub mitmesuguseid avalikult juurdep\u00e4\u00e4setavaid muutujaid, nagu <strong><a href=\"https:\/\/secure.php.net\/manual\/en\/reserved.variables.get.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">$_GET<\/a> ,<\/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 nii edasi. Need on ka meile k\u00e4ttesaadavad muutujad, mida saame vaadata. See ei piirdu ainult sellega, mis on meie koodis kirjas.<\/p>\n<p>See on eriti kasulik, kuna vaatame andmeid lehtede uuesti laadimiste, Ajaxi p\u00e4ringute (nt GET- ja POST-toimingute ajal) ja nii edasi.<\/p>\n<h3>2 Xdebugi installimine<\/h3>\n<p>Kuigi see on t\u00f5en\u00e4oliselt ilmne selle seeria eelmistest postitustest, kasutan oma valitud IDE-na <strong><a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Visual Studio koodi .<\/a><\/strong> Kui teil seda pole, siis ma soovitan seda. Kui teil on aga IDE, millega olete mugav kasutada, siis soovitan seda.<\/p>\n<ul>\n<li>Kood on alati v\u00e4ljat\u00f6\u00f6tamisel,<\/li>\n<li>on aktiivne laiendusmajandus,<\/li>\n<li>t\u00f6\u00f6tab h\u00e4sti erinevate keelte, t\u00f6\u00f6riistade ja muuga,<\/li>\n<li>on kerge ja m\u00e4ngib kenasti erinevate asjadega, mida WordPressi arendamisel v\u00f5idakse kasutada (nt PHP, HTML ja JavaScript).<\/li>\n<\/ul>\n<p>Lisaks on <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">koodil<\/a><\/strong> ka kindel tugi Xdebugile. Veendumaks, et silur on \u00f5igesti installitud, peame tagama, et meil oleks PHP installiga installitud laiendus, et see oleks saadaval kogu meie s\u00fcsteemis ja seda saaks k\u00e4ivitada meie IDE-s. Me kavatseme seda teha, kuid k\u00f5igepealt peame veenduma, et Xdebug on \u00f5igesti installitud.<\/p>\n<h4>Xdebugi installimine<\/h4>\n<p>Xdebugi installimine on lihtne. Oma terminali seansi jooksul peate t\u00e4itma <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-16-install-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">j\u00e4rgmise k\u00e4su:<\/a><\/strong><\/p>\n<p>Kui olete seda teinud, m\u00e4rkate installimise ajal terminaliaknas mitmeid asju. Kui te pole sellest eriti huvitatud, ei pea te selle tegevuse p\u00e4rast muretsema enne, kui see naaseb teid k\u00e4sureale.<\/p>\n<p>Praeguseks on Xdebugi moodul installitud; Siiski peate PHP-le teatama, et see on installitud ja kust ta mooduli leiab.<\/p>\n<p>Laienduse installimiseks praeguse PHP versiooniga on oluline teada, millise PHP versiooni olete installinud. Kui kasutate paketihaldurit, v\u00f5ib seal olla mitu versiooni ja peate selle konkreetse versiooni konfiguratsioonifailile \u00fctlema, kust moodul leida.<\/p>\n<p>Ja vastupidi, kui teil on installitud \u00fcks versioon, peate \u00fchele PHP versioonile teatama, kuhu see on installitud. Esiteks saate selle k\u00e4su abil leida, kus Xdebug failis\u00fcsteemis eksisteerib <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-17-find-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">:<\/a><\/strong><\/p>\n<p>Seej\u00e4rel peate oma PHP installi konfiguratsioonifaili v\u00e4rskendama. Selleks k\u00e4ivitage lihtsalt k\u00e4surealt <strong>php -v<\/strong> ja see \u00fctleb teile, millist versiooni te kasutate. Siit peate leidma kasutatava PHP versiooni l\u00e4htestamisfaili. <strong>Kui php -v<\/strong> k\u00e4ivitamisel tulete tagasi millegi sellisega:<\/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=\"Xdebugi installimine, 1. osa: Xdebugi moodul\"><\/a><\/p>\n<p>See n\u00e4itab, et kasutame PHP 7.1.19 (kuigi teie versioon v\u00f5ib erineda). Siit teame, et selle PHP versiooni jaoks tuleb otsida teatud PHP konfiguratsioonifaili. Selleks otsige oma s\u00fcsteemi kataloogist \/usr\/local\/etc\/php\/7.1\/ faili <strong>php.ini (kuigi t\u00e4pne versiooninumber v\u00f5ib erineda).<\/strong><\/p>\n<p>Sealt avage fail ja seej\u00e4rel lisage <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-18-reference-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">j\u00e4rgmine koodirida:<\/a><\/strong><\/p>\n<pre><code>zend_extension=\"\/usr\/local\/lib\/php\/pecl\/20160303\/xdebug.so\"<\/code><\/pre>\n<p>See annab PHP-le teada, kus Xdebug asub, et seda saaks oma t\u00f6\u00f6s kasutada.<\/p>\n<h4>Installimise testimine<\/h4>\n<p>Installimise \u00f5igsuse kontrollimiseks v\u00f5ite <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-19-verify-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">terminalis k\u00e4ivitada j\u00e4rgmise koodi:<\/a><\/strong><\/p>\n<p>Ja siis peaksite ekraanile n\u00e4gema midagi sellist, nagu j\u00e4rgmine v\u00e4ljund:<\/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=\"Xdebugi installimine, 1. osa: Xdebugi moodul\"><\/a><\/p>\n<p>Pange t\u00e4hele, et \u00fclaltoodud ekraanipildil n\u00e4ete j\u00e4rgmist.<\/p>\n<blockquote>\n<p>Xdebugi versiooniga 2.6.0, autori\u00f5igus (c) 2002\u20132018, autor Derick Rethans<\/p>\n<\/blockquote>\n<p>See t\u00e4hendab, et moodul on installitud ja PHP on sellest teadlik.<\/p>\n<h2>IDE konfigureerimine<\/h2>\n<p>J\u00e4rgmises postituses vaatleme Xdebugi sidumist meie IDE-ga. Eeldades, et olete j\u00e4rginud selles postituses toodud samme ja k\u00f5ik on l\u00e4inud h\u00e4sti, peaksite WordPressi projektide silumise ettevalmistamisega hakkama saama.<\/p>\n<p>Kuni me seda IDE-s ei t\u00f6\u00f6ta, pole see aga nii kasulik (v\u00f5i on see keerulisem, kui see olema peab). Nii et j\u00e4rgmisel n\u00e4dalal vaatame t\u00e4pselt, kuidas seda teha.<\/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>Selles postituses k\u00e4sitleme Xdebugi installimist, et see oleks saadaval meie PHP installis. L\u00f5puks v\u00f5imaldab see meil oma koodi siluda IDE-s.<\/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":[718,894,802],"tags":[1165],"class_list":["post-230241","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-kood","category-php-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/230241","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=230241"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/230241\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/236541"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=230241"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=230241"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=230241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}