{"id":230186,"date":"2022-12-04T17:09:00","date_gmt":"2022-12-04T14:09:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230186"},"modified":"2022-12-04T17:10:35","modified_gmt":"2022-12-04T14:10:35","slug":"wordpressi-vealogide-lugemine-ja-moistmine-1-osa","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-vealogide-lugemine-ja-moistmine-1-osa\/","title":{"rendered":"WordPressi vealogide lugemine ja m\u00f5istmine, 1. osa"},"content":{"rendered":"\n<p>Kui uurime j\u00e4tkuvalt, mida t\u00e4hendab olla <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/the-independent-wordpress-developer\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">s\u00f5ltumatu WordPressi arendaja<\/a><\/strong>, vajalikke t\u00f6\u00f6riistu ja erinevaid strateegiaid, mis v\u00f5ivad meie oskusi t\u00e4iustada, olen r\u00e4\u00e4kinud erinevatest konstantidest, pistikprogrammidest ja t\u00f6\u00f6riistadest, mis meid aitavad.<\/p>\n<p>Kui te lihtsalt komistate selle postituse otsa, siis soovitan vaadata <strong><a href=\"https:\/\/wordpress.mediadoma.com\/et\/natiivsed-wordpressi-silumistoeoeriistad-mis-ei-vaja-ide-d\/\" title=\"minu WordPressi natiivsete silumist\u00f6\u00f6riistade juhendit ja\">minu WordPressi natiivsete silumist\u00f6\u00f6riistade juhendit ja<\/a><\/strong> ka \u00fclej\u00e4\u00e4nud seeria <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/the-independent-wordpress-developer\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">seniseid postitusi.<\/a><\/strong><\/p>\n<p>L\u00f5ppkokkuv\u00f5ttes pean ma oluliseks, et me k\u00f5ik t\u00f6\u00f6taksime selle teabe l\u00e4bimisel sama aluse \u2013 v\u00f5i millegi tihedalt seotud \u2013 alusel.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163025-61e7490c88078.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-163025-61e7490c88078.png\" alt=\"WordPressi vealogide lugemine ja m\u00f5istmine, 1. osa\"><\/a><\/p>\n<p>L\u00f5ppkokkuv\u00f5ttes on sellise t\u00f6\u00f6riista nagu <strong><a href=\"https:\/\/xdebug.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Xdebug<\/a><\/strong> kasutamine m\u00f6\u00f6dap\u00e4\u00e4smatu, kuid me peame selle nimel vaeva n\u00e4gema (huvilistele <strong><a href=\"https:\/\/wordpress.mediadoma.com\/et\/xdebugi-kasutamine-koos-valeti-ja-wordpressiga\/\" title=\"kirjutasin\">kirjutasin<\/a><\/strong> veidi \u00fcle aasta tagasi selle kohta l\u00fchikese juhendi).<\/p>\n<p>Praegu aga alustame p\u00f5hit\u00f5dedest. Eelmises postituses lahkusin j\u00e4rgmise v\u00e4itega:<\/p>\n<blockquote>\n<p>J\u00e4rgmises postituses hakkame uurima, mida on vaja WordPressi genereeritud vealogi uurimiseks ja kuidas n\u00e4ha teavet, mida n\u00e4eme.<\/p>\n<\/blockquote>\n<p>Ja seda ma tahan t\u00e4na vaadata, sest kui mitte midagi muud, siis see annab teile midagi praktilist, mille p\u00f5hjal t\u00f6\u00f6tada.<\/p>\n<h2>WordPressi vealogide m\u00f5istmine, 1. osa<\/h2>\n<p>Enne kui l\u00e4hen sellesse liiga kaugele, tahan k\u00e4sitleda \u00fchte k\u00fcsimust, mille saidi liige t\u00f5statas.<\/p>\n<p>Nimelt k\u00fcsiti minult:<\/p>\n<blockquote>\n<p>Millal me vaatame objektorienteeritud p\u00f5him\u00f5tteid?<\/p>\n<\/blockquote>\n<p>Kuigi ma olen seda <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/oop-fundamentals\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">eelmises sarjas<\/a><\/strong> veidi k\u00e4sitlenud, t\u00f6\u00f6tan selle nimel, et seda sarjas hiljem p\u00f5hjalikumalt k\u00e4sitleda.<\/p>\n<p>Seda \u00f6eldes alustame siiski vealogide vaatamist.<\/p>\n<h3>Konstantide seadistamine<\/h3>\n<p>Kui te pole failis <strong>wp-config.php<\/strong> konstante konfigureerinud, soovitan seda teha kohe, kuna see annab teile tekkida v\u00f5ivate probleemide uurimisel suurima t\u00e4psusastme.<\/p>\n<p>Kui te pole veel j\u00f5udnud, lugege kindlasti <strong><a href=\"https:\/\/wordpress.mediadoma.com\/et\/natiivsed-wordpressi-silumistoeoeriistad-mis-ei-vaja-ide-d\/\" title=\"seda postitust\">seda postitust<\/a><\/strong> (ja kui olete, veenduge, et teie konfiguratsioonifailis on m\u00e4\u00e4ratletud <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-11-wp-config-debug-full-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">j\u00e4rgmised konstandid ):<\/a><\/strong><\/p>\n<pre><code>&lt;?php\ndefine( 'WP_DEBUG', true );\ndefine( 'WP_DEBUG_LOG', true );\ndefine( 'WP_DEBUG_DISPLAY', true );\n@ini_set( 'display_errors', 1 );\ndefine( 'SCRIPT_DEBUG', true );\ndefine( 'SAVEQUERIES', true );<\/code><\/pre>\n<p>Kui need on paigas, on teil k\u00f5ik, mida vajate, et mitte ainult ekraanil teavet n\u00e4ha, vaid ka WordPressi loodud silumislogis.<\/p>\n<h3>Kus on Log?<\/h3>\n<p>S\u00f5ltuvalt teie keskkonna olemusest v\u00f5ib see erineda; kuid enamikul juhtudel leiate <strong>faili debug.log<\/strong> kataloogist <strong>wp-content<\/strong>, mis asub <strong>pistikprogrammide<\/strong>, <strong>teemade<\/strong> ja <strong>\u00fcleslaadimiste<\/strong> kataloogide kohal.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163025-61e74910d3457.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-163025-61e74910d3457.png\" alt=\"WordPressi vealogide lugemine ja m\u00f5istmine, 1. osa\"><\/a><\/p>\n<p>Nagu n\u00e4ete \u00fclaloleva ekraanipildi eelvaatest, on minu silumisfailis palju sisu. Vaatleme seda p\u00f5hjalikumalt j\u00e4rgmises jaotises ja ka seda, kuidas seda m\u00f5ista. Seni aga kontrollige, kas see fail on \u00fcldse olemas. Kui see on olemas, siis tutvuge faili sisuga. Te v\u00f5ite v\u00f5i ei pruugi paljust toimuvast aru saada, kuid faili sisu t\u00e4hendab, et miski teemas v\u00f5i pistikprogrammis k\u00e4ivitab erinevaid <strong><a href=\"https:\/\/secure.php.net\/manual\/en\/function.error-reporting.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP hoiatusi, teateid ja t\u00f5rkeid<\/a><\/strong>, mida WordPress p\u00fc\u00fcab ja logifaili salvestab.<\/p>\n<h3>Mida logifail isegi t\u00e4hendab?<\/h3>\n<p>See ei t\u00e4henda tingimata, et miski on katki, kuid see viitab sellele, et miski ei t\u00f6\u00f6ta nii nagu peaks, seda ei tabata ega k\u00e4sitleta programmilisel tasemel v\u00f5i lihtsalt teeb midagi, mida ei peaks tegema.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163025-61e749148c865.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-163025-61e749148c865.png\" alt=\"WordPressi vealogide lugemine ja m\u00f5istmine, 1. osa\"><\/a><\/p>\n<p>See ei pea selline v\u00e4lja n\u00e4gema (aga v\u00f5ib!).<\/p>\n<p>Arendajatena peaksime p\u00fc\u00fcdma tagada, et meie kood ei genereeriks midagi, mis kirjutataks vealogi.<\/p>\n<p>\u00dcks asi on seda teha arenduses, kuna saame \u00fclevaate sellest, mida me teeme ja kuidas WordPress toimib. Teine asi on aga see, et midagi, mille me tootmistasandil v\u00e4lja anname, loob selliseid asju.<\/p>\n<h3>Vealogi lugemine<\/h3>\n<p>Ilmselgelt tuleb vealogi lugeda rohkem kui lihtsalt avada. Paljudele j\u00e4\u00e4b esmamulje, et see v\u00f5ib olla hunnik k\u00f5nepruuki. Ma saan ka sellest aru. Kuid kui saate aru, mida see teile n\u00e4itab, on seda palju lihtsam m\u00f5ista.<\/p>\n<p>Nii et vaatame \u00fchte v\u00e4ga lihtsat n\u00e4idet. See pole ka v\u00e4ljam\u00f5eldud n\u00e4ide. Tegelikult on see pistikprogramm, mille kallal ma t\u00f6\u00f6tasin. Vealogi sisaldab <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-12-error-log-example-1-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">j\u00e4rgmist teavet<\/a><\/strong> :<\/p>\n<pre><code>[05-Jul-2018 19:43:53 UTC] PHP Fatal error:  Uncaught Error: Class 'EasyEmailExportAdminEmailExportSubmenu' not found in \/Users\/tommcfarlin\/Dropbox\/Projects\/trunk\/wp-content\/plugins\/easy-email-export\/easy-email-export.php:37\n#8 \/U in \/Users\/tommcfarlin\/Dropbox\/Projects\/trunk\/wp-content\/plugins\/easy-email-export\/easy-email-export.php on line 37\n[05-Jul-2018 19:44:03 UTC] PHP Warning:  include_once(.\/src\/Admin\/EmailExportSubmenu.php): failed to open stream: No such file or directory in \/Users\/tommcfarlin\/Dropbox\/Projects\/trunk\/wp-content\/plugins\/easy-email-export\/easy-email-export.php on line 25\n[05-Jul-2018 19:44:03 UTC] PHP Warning:  include_once(): Failed opening '.\/src\/Admin\/EmailExportSubmenu.php' for inclusion (include_path='.:\/usr\/local\/Cellar\/php\/7.2.5\/share\/php\/pear') in \/Users\/tommcfarlin\/Dropbox\/Projects\/trunk\/wp-content\/plugins\/easy-email-export\/easy-email-export.php on line 25<\/code><\/pre>\n<p>Pange t\u00e4hele, et \u00fclaltoodud sisus on kolm rida. Parim viis vealogide lugemisel on alustada alt ja liikuda \u00fclespoole. Selle p\u00f5hjuseks on asjaolu, et t\u00e4itmisel t\u00f6\u00f6tavad asjad virnas.<\/p>\n<h4>L\u00fchike k\u00f5rvalep\u00f5ige virnade kohta<\/h4>\n<p>Ma ei hakka selle m\u00f5iste arvutiteaduslikku definitsiooni kirjeldama, kuid kood k\u00e4ivitatakse ja t\u00f6\u00f6tab nii, et funktsioonid tekivad ja s\u00f5na otseses m\u00f5ttes, arvuti m\u00e4lus, kuhjuvad \u00fcksteise peale.<\/p>\n<p>Seega on k\u00f5ige uuem jooksmine alati \u00fclaosas, kus alguspunkti juur asub allosas. Kuna me kirjutame koodi juba olemasolevale rakendusele, see on WordPress; siis on meie kood t\u00f5en\u00e4oliselt alati \u00fclaosas.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163025-61e74918219d3.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-163025-61e74918219d3.png\" alt=\"WordPressi vealogide lugemine ja m\u00f5istmine, 1. osa\"><\/a><\/p>\n<p>WordPressi vealogide m\u00f5istmine: see pole selline virn<\/p>\n<p>Idee seisneb selles, et kood hakkab WordPressis t\u00e4itma ja liigub edasi meie tehtava t\u00f6\u00f6ni. Kui kuvatakse teade, hoiatus v\u00f5i t\u00f5rge, on see tavaliselt midagi meie koodis (kuigi WordPress ei ole sellest vabastatud, on see \u00fcldiselt nii).<\/p>\n<p>Nii et t\u00f5rkelogi l\u00e4bi lugedes loete sisuliselt seda, mida nimetatakse <strong><a href=\"https:\/\/en.wikipedia.org\/wiki\/Stack_trace\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">virnaj\u00e4ljeks.<\/a><\/strong> Viidatud Wikipedial on selle teema kohta \u00fcsna p\u00f5hjalik definitsioon, kuid v\u00f5ib-olla on selle postituse jaoks k\u00f5ige asjakohasem j\u00e4rgmine:<\/p>\n<blockquote>\n<p>Programmeerijad kasutavad tavaliselt virna j\u00e4lgimist interaktiivse ja surmaj\u00e4rgse [silumise] ajal (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Debugging\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/en.wikipedia.org\/wiki\/Silumine<\/a>). L\u00f5ppkasutajad v\u00f5ivad n\u00e4ha <a href=\"https:\/\/en.wikipedia.org\/wiki\/Error_message\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00f5rketeate<\/a> osana kuvatud virna j\u00e4lge, millest kasutaja saab seej\u00e4rel programmeerijale teatada.<\/p>\n<\/blockquote>\n<p>See vastab sellele, mida ma eespool kirjeldasin, eks? Kuid kui r\u00e4\u00e4gime sellest, mis on virnaj\u00e4lg (see muutub selgemaks, kui me silumisse s\u00fcveneme), p\u00f6\u00f6rdume tagasi logifaili lugemise juurde, nagu see praegu on.<\/p>\n<h3>Tagasi Logi lugemise juurde<\/h3>\n<h4>Sealhulgas failid<\/h4>\n<p>Esiteks, vaatame \u00fclaltoodud sisu p\u00f5hijoont. See sisaldab j\u00e4rgmist:<\/p>\n<pre><code>[05-Jul-2018 19:44:03 UTC] PHP Warning: include_once(): Failed opening '.\/src\/Admin\/EmailExportSubmenu.php' for inclusion (include_path='.:\/usr\/local\/Cellar\/php\/7.2.5\/share\/php\/pear') in \/Users\/tommcfarlin\/Dropbox\/Projects\/trunk\/wp-content\/plugins\/easy-email-export\/easy-email-export.php on line 25<\/code><\/pre>\n<p><strong>See \u00fctleb mulle, et minu faili easy-email-export.php<\/strong> real 25 ei \u00f5nnestunud faili kaasamiseks avada. See t\u00e4hendab, et mul on koodis lause <strong>include_once<\/strong>, mis viitab <strong>failile .\/src\/Admin\/EmailExportSubmenu.php<\/strong>, mida see ei leia.<\/p>\n<p>Seega oleks parim viis leida rida 25 ja teha kindlaks, miks see faili asukohta ei leia. V\u00f5ib-olla j\u00e4tab see kogu tee selle kohta, kuhu see otsib. Selleni j\u00f5uame hetkega, kui r\u00e4\u00e4gime vealogi kirjutamisest.<\/p>\n<h4>Vigade m\u00f5testamine<\/h4>\n<p>J\u00e4rgmisel real (st \u00e4sja vaadatud rea kohal olev rida) sisaldab j\u00e4rgmist:<\/p>\n<pre><code>[05-Jul-2018 19:44:03 UTC] PHP Warning: include_once(.\/src\/Admin\/EmailExportSubmenu.php): failed to open stream: No such file or directory in \/Users\/tommcfarlin\/Dropbox\/Projects\/trunk\/wp-content\/plugins\/easy-email-export\/easy-email-export.php on line 25<\/code><\/pre>\n<p>See konkreetne rida erineb vaid veidi, kuid annab t\u00e4iendava \u00fclevaate ja see sisaldub klauslis &quot;Sellist faili v\u00f5i kataloogi pole.&quot; See on p\u00f5hjalik, sest see \u00fctleb meile s\u00f5na otseses m\u00f5ttes, et faili pole olemas.<\/p>\n<p>V\u00e4hemalt ei eksisteeri seda sealt, kust ta otsib. Seega on kaks v\u00f5imalust:<\/p>\n<ol>\n<li>me ei ole loonud faili, millele viitame,<\/li>\n<li>viitame faili asukohale vales kohas<\/li>\n<\/ol>\n<p>Seega peaksime esimese asjana kontrollima, kas fail on asukohas, mida proovime kaasata. Kui ei, siis peaksime faili looma.<\/p>\n<p>Kui fail on olemas, siis teame, et pistikprogramm soovib seda valelt teelt laadida. Seega peame v\u00f5ib-olla vaatama oma <strong><a href=\"https:\/\/wordpress.mediadoma.com\/et\/nimeruumid-ja-automaatne-laadimine-wordpressis\/\" title=\"automaatlaadurit\">automaatlaadurit<\/a><\/strong>, kaasamise teed v\u00f5i failide allalaadimise viisi. T\u00f5en\u00e4oliselt on see, et kui fail on olemas, siis proovitakse seda laadida kohast, kus see ei asu.<\/p>\n<h3>Tabamata viga<\/h3>\n<p>Koodi viimasel real n\u00e4ete midagi sellist:<\/p>\n<pre><code>[05-Jul-2018 19:43:53 UTC] PHP Fatal error: Uncaught Error: Class 'EasyEmailExportAdminEmailExportSubmenu' not found in \/Users\/tommcfarlin\/Dropbox\/Projects\/trunk\/wp-content\/plugins\/easy-email-export\/easy-email-export.php:37\n#8 \/U in \/Users\/tommcfarlin\/Dropbox\/Projects\/trunk\/wp-content\/plugins\/easy-email-export\/easy-email-export.php on line 37<\/code><\/pre>\n<p>See on esiteks hea n\u00e4ide, kuna see deklareerib selges\u00f5naliselt, et tegemist on tabamata veaga. See t\u00e4hendab, et olenemata funktsionaalsusest tekitab miski vea ja seda ei tabata.<\/p>\n<ul>\n<li>see v\u00f5ib olla erand,<\/li>\n<li>see v\u00f5ib olla probleem, kui proovite kutsuda funktsiooni, mida pole olemas,<\/li>\n<li>see v\u00f5ib toimida muutujaga, mis pole m\u00e4\u00e4ratletud,<\/li>\n<li>ja nii edasi.<\/li>\n<\/ul>\n<p>L\u00f5ppkokkuv\u00f5ttes v\u00f5ib esineda palju probleeme. Hea uudis selles n\u00e4ites on see, et see on praktiliselt sama, mis \u00fclaltoodud: faili ei leitud.<\/p>\n<p>V\u00e4lja arvatud, hoiatuse asemel \u00fctleb PHP meile selges\u00f5naliselt, et tegemist on saatusliku veaga ja programm ei saa t\u00e4itmist j\u00e4tkata enne, kui see koodirida on lahendatud. Enne kui loobume sellest kui millestki, mis on sama mis eelmises jaotises (sest m\u00f5nes m\u00f5ttes on see nii), peame m\u00f5istma, et see on otseselt \u00f6eldud saatusliku veana, samas kui eelmises n\u00e4ites k\u00e4sitleti seda kui hoiatus.<\/p>\n<p>Selle kontseptualiseerimiseks on erinevaid viise, kuid \u00fcldiselt arvan ma sellest j\u00e4rgmiselt:<\/p>\n<ul>\n<li>Teade \u00fctleb mulle, et koodis on midagi valesti, kuid see pole piisavalt halb, et \u00f5igustada t\u00e4itmise peatamist.<\/li>\n<li>Hoiatus on veidi t\u00f5sisem, sest see t\u00e4hendab, et miski v\u00f5ib eba\u00f5nnestuda.<\/li>\n<li>T\u00f5rge \u00fctleb otse: &quot;See ei t\u00f6\u00f6ta ja programm ei saa j\u00e4tkata.&quot;<\/li>\n<\/ul>\n<p>N\u00fc\u00fcd teame, et probleem on nii-\u00f6elda n\u00e4iline ja me teame, milles probleem on. Lihtsamalt \u00f6eldes ei leita faili, mis on programmi t\u00e4itmise l\u00f5puleviimiseks vajalik, ja seet\u00f5ttu lakkab programm t\u00f6\u00f6tamast.<\/p>\n<p>See on kindlasti saatuslik viga.<\/p>\n<h3>Mis on lahendus?<\/h3>\n<p>See, mida ma oma probleemile lahendusena pakun, ei ole ettekirjutav selle kohta, mis teie jaoks t\u00f6\u00f6tab. Minu jaoks oli asi minu Composeri konfiguratsioonis sellises reas, et Composeri automaatlaadur ei suutnud faili \u00f5iges asukohas leida (aga see on rohkem seotud failikorralduse, nimevahede ja muuga).<\/p>\n<p>Teie jaoks v\u00f5ib see olla midagi muud.<\/p>\n<ul>\n<li>v\u00f5ib-olla otsib see faili valest kataloogist,<\/li>\n<li>v\u00f5ib-olla on faili nimi koodis m\u00e4\u00e4ratust erinev,<\/li>\n<li>v\u00f5i \u00e4kki on asi milleski muus.<\/li>\n<\/ul>\n<p>Igal juhul on asi selles, et peate logifaili alt \u00fcles t\u00f6\u00f6tama, et probleem diagnoosida ja j\u00e4lgida, mida PHP, WordPress ja teie t\u00f6\u00f6 teevad, ning seej\u00e4rel diagnoosida see sealt.<\/p>\n<h2>Kirjutamine vealogi<\/h2>\n<p>J\u00e4rgmises postituses v\u00f5tame hetke, et n\u00e4ha, kuidas saaksime vealogi kirjutada. M\u00f5nikord on faili lugemine hea ja lihtsalt n\u00e4htu vahel edasi-tagasi liikumine ja probleemide lahendamine on tore.<\/p>\n<p>Aga kuidas on siis, kui tahame midagi v\u00e4lja j\u00e4tta, et saada \u00fclevaade sellest, mida WordPress v\u00f5i PHP n\u00e4eb? See on ka kasulik.<\/p>\n<p>Nii et selle sarja j\u00e4rgmises osas, mis k\u00e4sitleb WordPressi vealogide m\u00f5istmist, teeme t\u00e4pselt seda.<\/p>\n<h3>Mis on p\u00e4rast seda?<\/h3>\n<p>J\u00e4rgmisena vaatleme, kuidas kasutada m\u00f5nda eelnevalt kirjeldatud pistikprogrammi koodi testimiseks ja koodi profileerimiseks, veendumaks, et oleme teinud k\u00f5ik endast oleneva, et tagada meie kvaliteetne tase.<\/p>\n<p>See ei t\u00e4henda, et oleme silumisprotsessiga t\u00e4ielikult l\u00f5petanud, kuid oleme kindlasti sammukese l\u00e4hemal ja oleme valmis kirjutama sellise kvaliteediga koodi, mille tulemuseks pole fail, mis esindab erinevaid n\u00fcansiprobleeme. olime liiga hoolimatud, et parandada (r\u00e4\u00e4kimata sellest, et aru saada).<\/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>Koodi silumise alustamiseks ilma kolmanda osapoole t\u00f6\u00f6riistu kasutamata vaadake, mida PHP ja WordPress genereerivad ja WordPressi vealogide m\u00f5istmise kaudu t\u00f6\u00f6tavad.<\/p>\n","protected":false},"author":1,"featured_media":163026,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,894,842,863],"tags":[1165],"class_list":["post-230186","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-kood","category-opetused","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/230186","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=230186"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/230186\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/163026"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=230186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=230186"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=230186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}