{"id":122,"date":"2023-02-14T00:00:00","date_gmt":"2023-02-13T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/et\/paremini-loetavad-vead-wordpressis-wp-debug-koos-acorniga\/"},"modified":"2026-01-20T06:33:09","modified_gmt":"2026-01-20T05:33:09","slug":"paremini-loetavad-vead-wordpressis-wp-debug-koos-acorniga","status":"publish","type":"post","link":"https:\/\/helloblog.io\/et\/paremini-loetavad-vead-wordpressis-wp-debug-koos-acorniga\/","title":{"rendered":"Paremini loetavad vead WordPressis: WP_DEBUG koos Acorniga"},"content":{"rendered":"\n<p>Kui teed WordPressi teemasid v\u00f5i pluginaid, siis <code>WP_DEBUG<\/code> on sisuliselt turvav\u00f6\u00f6: see peab olema arenduses sees, muidu j\u00e4\u00e4vad notice\u2019id, deprecated-teated ja \u201cimelikud\u201d vead liiga kauaks varju. Probleem on selles, et WordPressi vaikimisi <code>WP_DEBUG<\/code> v\u00e4ljund on \u00fcsna toore v\u00f5itu \u2014 veateated visatakse lihtsalt lehe sisse ja ongi k\u00f5ik.<\/p>\n\n\n\n<p>Roots\u2019i \u00f6kos\u00fcsteemis (Bedrock + Acorn) saab seda kogemust m\u00e4rgatavalt paremaks teha. Acorn suudab <code>WP_DEBUG<\/code> puhul kuvada arendajale palju loetavama exception view, ning soovi korral tuua WordPressi juurde ka Ignitioni \u2014 sama error page\u2019i, millega Laravel arendajad on harjunud.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mis <code>WP_DEBUG<\/code> tegelikult lahendab (ja mis j\u00e4\u00e4b lahendamata)<\/h2>\n\n\n\n<p><code>WP_DEBUG<\/code> on WordPressi debug-re\u017eiim, mis aktiveeritakse konfiguratsioonis <code>WP_DEBUG<\/code> konstandiga. Arenduskeskkonnas on m\u00f5istlik see alati sisse l\u00fclitada, sest WordPressi \u00f6kos\u00fcsteemis leidub v\u00e4ga palju koodi, mis tekitab notice\u2019e v\u00f5i warnings\u2019e, ning need viitavad sageli p\u00e4ris probleemidele (valed andmet\u00fc\u00fcbid, valed hook\u2019i argumendid, vananenud API kasutus jne).<\/p>\n\n\n\n<p>Vaikimisi kogemus on aga ebamugav: veateade ilmub otse HTML-i sisse, tihti ilma kontekstita, m\u00f5nikord katkise layout\u2019iga ja sellisel kujul, mida on keeruline kiiresti sk\u00e4nnida.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"2252\" src=\"https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-default-scaled.png\" alt=\"WordPressi WP_DEBUG vaikimisi veav\u00e4ljund brauseris\" class=\"wp-image-118\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-default-scaled.png 2560w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-default-300x264.png 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-default-1024x901.png 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-default-768x676.png 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-default-1536x1351.png 1536w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-default-2048x1802.png 2048w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-default-400x352.png 400w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption class=\"wp-element-caption\">WP_DEBUG vaikimisi v\u00e4ljund on pigem toores: teade kuvatakse otse lehe sees. \u2014 <em>Forr\u00e1s: Roots.io<\/em><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Bedrocki puhul on arendusre\u017eiim juba m\u00f5istlikult paigas<\/h2>\n\n\n\n<p>Kui kasutad Bedrocki (Roots\u2019i modernne WordPressi boilerplate, mis kasutab Composeri), siis on arenduskeskkonna konfiguratsioonis <code>WP_DEBUG<\/code> juba vaikimisi aktiivne. See on \u00fcks neid v\u00e4ikseid, aga v\u00e4ga praktilisi asju, mis teeb Bedrocki arendusts\u00fckli sujuvamaks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kuidas Acorn muudab <code>WP_DEBUG<\/code> kogemust<\/h2>\n\n\n\n<p>Acorn on Roots\u2019i Laravelist inspireeritud rakenduskiht WordPressi jaoks. Selle \u00fcks meeldiv k\u00f5rvalm\u00f5ju on parem error handling: kui <code>WP_DEBUG<\/code> ja <code>WP_DEBUG_DISPLAY<\/code> on sisse l\u00fclitatud, hakkab Acorn kuvama erandeid arendajas\u00f5bralikumas vormis.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) Acorni vaikimisi exception handler (Symfony)<\/h3>\n\n\n\n<p>Acorni vaikek\u00e4itumine kasutab Symfony exception handler\u2019it. Tulemuseks on puhtam ja paremini loetav error page, kus stack trace ja veateate struktuur on selgem kui WordPressi default v\u00e4ljundis.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"2252\" src=\"https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-symfony-scaled.png\" alt=\"Acorni Symfony exception handleri vealeht WP_DEBUG re\u017eiimis\" class=\"wp-image-119\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-symfony-scaled.png 2560w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-symfony-300x264.png 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-symfony-1024x901.png 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-symfony-768x676.png 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-symfony-1536x1351.png 1536w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-symfony-2048x1802.png 2048w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-symfony-400x352.png 400w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption class=\"wp-element-caption\">Acorni vaikimisi (Symfony) vealeht annab m\u00e4rksa paremini loetava stack trace\u2019i. \u2014 <em>Forr\u00e1s: Roots.io<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">2) Ignition: Laravelile omane vealeht ka WordPressis<\/h3>\n\n\n\n<p>Kui tuled Laravelist, siis Ignition on t\u00f5en\u00e4oliselt tuttav \u2014 see on Laravel v9 ajast vaikimisi error page. Acorn v3 t\u00f5i WordPressi poolele parema Laraveli routing\u2019u toe ning sellega koos ka v\u00f5imaluse kasutada Ignitioni WordPressi saidis, mis t\u00f6\u00f6tab Acorni peal.<\/p>\n\n\n\n<p>Praktikas t\u00e4hendab see, et saad arenduses oluliselt parema veaanal\u00fc\u00fcsi kogemuse: selgem stack trace, paremini esitletud kontekst ja \u00fcldiselt \u201cmodernse PHP\u201d tunnetus ka WordPressi projektis.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"2252\" src=\"https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-ignition-scaled.png\" alt=\"Acorni Ignitioni vealeht WordPressis WP_DEBUG re\u017eiimis\" class=\"wp-image-120\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-ignition-scaled.png 2560w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-ignition-300x264.png 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-ignition-1024x901.png 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-ignition-768x676.png 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-ignition-1536x1351.png 1536w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-ignition-2048x1802.png 2048w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-ignition-400x352.png 400w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption class=\"wp-element-caption\">Ignition on paljudele Laravel arendajatele k\u00f5ige mugavam viis exception\u2019ite uurimiseks. \u2014 <em>Forr\u00e1s: Roots.io<\/em><\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Ignitioni paigaldamine (ainult arendusse)<\/h4>\n\n\n\n<p>Ignitioni kasutuselev\u00f5tt k\u00e4ib Composeri kaudu. K\u00e4ivita see k\u00e4sk samas kataloogis, kus Acorn on projektis paigaldatud:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>composer require spatie\/laravel-ignition --dev\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> require<\/span><span style=\"color:#9ECBFF\"> spatie\/laravel-ignition<\/span><span style=\"color:#79B8FF\"> --dev<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-group callout callout-info is-style-info is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:1px;border-radius:8px;padding-top:1rem;padding-right:1.5rem;padding-bottom:1rem;padding-left:1.5rem\">\n\n<h4 class=\"wp-block-heading callout-title\">M\u00e4rkus<\/h4>\n\n\n<p><code>--dev<\/code> hoiab Ignitioni arenduss\u00f5ltuvusena. Tootmiskeskkonnas ei ole detailne error page tavaliselt soovitav.<\/p>\n\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">3) whoops: varasem \u201cklassika\u201d Acorni k\u00f5rval<\/h3>\n\n\n\n<p>Enne Acorn v3 aega soovitati Acorni juurde tihti whoops\u2019i (filp\/whoops), mis pakkus WordPressi defaultist paremat veavaadet. Kui oled veel Acorn v2 peal, on whoops endiselt \u00fcks viis kogemust parandada, kuigi Roots ise suunab pigem Acorn v3 peale liikumisele.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"2252\" src=\"https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-whoops-scaled.png\" alt=\"Acorni vealeht whoopsiga WP_DEBUG re\u017eiimis\" class=\"wp-image-121\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-whoops-scaled.png 2560w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-whoops-300x264.png 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-whoops-1024x901.png 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-whoops-768x676.png 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-whoops-1536x1351.png 1536w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-whoops-2048x1802.png 2048w, https:\/\/helloblog.io\/app\/uploads\/sites\/18\/2026\/01\/wp_debug-acorn-whoops-400x352.png 400w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption class=\"wp-element-caption\">whoops oli kaua populaarne valik loetavamaks stack trace\u2019iks. \u2014 <em>Forr\u00e1s: Roots.io<\/em><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Kui Acornit ei kasuta: kaks praktilist alternatiivi<\/h2>\n\n\n\n<p>Isegi ilma Acornita saab WordPressi debugimise igap\u00e4evaelu paremaks teha. Kaks levinud varianti on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><a href=\"https:\/\/querymonitor.com\/\">Query Monitor<\/a> \u2014 v\u00e4ga tugev t\u00f6\u00f6riist p\u00e4ringute, hook\u2019ide, HTTP p\u00e4ringute, PHP vigade jpm j\u00e4lgimiseks; paljudes tiimides on see lokaalse arenduse \u201cmust-have\u201d.<\/li>\n\n\n<li><a href=\"https:\/\/wordpress.org\/plugins\/debug-bar\/\">Debug Bar<\/a> \u2014 lihtsam, klassikaline debug-paneel WordPressi adminis.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Praktiline soovitus: hoia debug arenduses agressiivselt sees<\/h2>\n\n\n\n<p>Hea rutiin on hoida arenduskeskkonnas <code>WP_DEBUG<\/code> alati aktiivsena ja parandada notice\u2019id\/warnings\u2019id kohe, kui need tekivad. Eriti Bedrocki + Acorni puhul on see mugav: saad kohe arusaadava exception view ning vajadusel Ignitioni tasemel t\u00f6\u00f6riistad, ilma et peaksid WordPressi default v\u00e4ljundiga maadlema.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kokkuv\u00f5te<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li><code>WP_DEBUG<\/code> peaks arenduses alati sees olema, sest see paljastab probleemid varakult.<\/li>\n\n\n<li>WordPressi vaikimisi <code>WP_DEBUG<\/code> v\u00e4ljund on funktsionaalne, kuid arendaja jaoks ebamugav ja v\u00e4heinformatiivne.<\/li>\n\n\n<li>Acorn parandab error handling\u2019ut: vaikimisi Symfony exception handler annab loetavama vaate.<\/li>\n\n\n<li>Acorni puhul saab lisada Ignitioni (<code>composer require spatie\/laravel-ignition --dev<\/code>), mis toob Laravelile omase parima vealehe kogemuse WordPressi.<\/li>\n\n\n<li>Kui Acornit ei kasuta, on Query Monitor ja Debug Bar head alternatiivid.<\/li>\n\n<\/ol>\n\n\n<div class=\"references-section\">\n                <h2>Viited \/ Allikad<\/h2>\n                <ul class=\"references-list\"><li><a href=\"https:\/\/roots.io\/better-wordpress-debugging-with-acorn\/\" target=\"_blank\" rel=\"noopener noreferrer\">Better WordPress Debugging with Acorn<\/a><\/li><li><a href=\"https:\/\/roots.io\/bedrock\/\" target=\"_blank\" rel=\"noopener noreferrer\">Bedrock<\/a><\/li><li><a href=\"https:\/\/roots.io\/acorn\/docs\/error-handling\/#ignition\" target=\"_blank\" rel=\"noopener noreferrer\">Error handling &#8211; Acorn documentation<\/a><\/li><li><a href=\"https:\/\/roots.io\/acorn\/docs\/upgrading-acorn\/\" target=\"_blank\" rel=\"noopener noreferrer\">Upgrading Acorn &#8211; Acorn documentation<\/a><\/li><li><a href=\"https:\/\/querymonitor.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Query Monitor<\/a><\/li><li><a href=\"https:\/\/wordpress.org\/plugins\/debug-bar\/\" target=\"_blank\" rel=\"noopener noreferrer\">Debug Bar<\/a><\/li><li><a href=\"https:\/\/github.com\/filp\/whoops\" target=\"_blank\" rel=\"noopener noreferrer\">filp\/whoops<\/a><\/li><li><a href=\"https:\/\/laravel.com\/docs\/9.x\/helpers\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel helpers (Laravel 9.x docs)<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>WP_DEBUG on k\u00fcll h\u00e4davajalik, aga selle vaikimisi veateade brauseris on tihti rohkem m\u00fcra kui abi. Acorn suudab selle kogemuse viia Laravelile omaselt selgeks: loetav stack trace, kontekst ja paremad error page\u2019id.<\/p>\n","protected":false},"author":49,"featured_media":117,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[4,67,74,9,73],"class_list":["post-122","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpressi-okosusteem","tag-acorn","tag-bedrock","tag-laravel","tag-wordpress","tag-wp_debug"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/posts\/122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/users\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/comments?post=122"}],"version-history":[{"count":1,"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/posts\/122\/revisions"}],"predecessor-version":[{"id":136,"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/posts\/122\/revisions\/136"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/media\/117"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/media?parent=122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/categories?post=122"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/et\/wp-json\/wp\/v2\/tags?post=122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}