{"id":111,"date":"2023-02-14T00:00:00","date_gmt":"2023-02-13T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/lt\/tvarkingesnis-wordpress-klaidu-gaudymas-su-acorn\/"},"modified":"2026-01-20T06:33:13","modified_gmt":"2026-01-20T05:33:13","slug":"tvarkingesnis-wordpress-klaidu-gaudymas-su-acorn","status":"publish","type":"post","link":"https:\/\/helloblog.io\/lt\/tvarkingesnis-wordpress-klaidu-gaudymas-su-acorn\/","title":{"rendered":"Tvarkingesnis WordPress klaid\u0173 gaudymas su Acorn: nuo WP_DEBUG iki Ignition"},"content":{"rendered":"\n<p>Kai dirbi su WordPress lokaliai, <code>WP_DEBUG<\/code> tur\u0117t\u0173 b\u016bti \u012fjungtas prakti\u0161kai visada: taip grei\u010diau pamatai <em>notice<\/em>, <em>warning<\/em> ir fatal klaidas, kurios kitu atveju tyliai sugadint\u0173 funkcionalum\u0105 arba \u201eu\u017esikraut\u0173\u201c \u012f produkcij\u0105. Problema ta, kad numatytas WordPress klaid\u0173 i\u0161vedimas \u012f ekran\u0105 yra gana primityvus: gauni tekst\u0105 be konteksto, be tvarkingo stack trace, o kartais ir be ai\u0161kaus kelio iki vietos, kuri\u0105 reikia taisyti.<\/p>\n\n\n\n<p>Jei tavo projektas paremtas Roots ekosistema (Bedrock + Acorn), situacij\u0105 galima smarkiai pagerinti be papildom\u0173 \u201emagij\u0173\u201c. Acorn (Roots framework, \u012f WordPress atne\u0161antis dal\u012f Laravel patogum\u0173) sugeba perimti <code>WP_DEBUG<\/code> klaid\u0173 atvaizdavim\u0105 ir parodyti jas \u017eymiai suprantamiau.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kas i\u0161 tikr\u0173j\u0173 daro WP_DEBUG (ir kod\u0117l to neu\u017etenka)<\/h2>\n\n\n\n<p><code>WP_DEBUG<\/code> \u2013 tai WordPress konstantos pagrindu \u012fjungiamas debug re\u017eimas. Prakti\u0161kai tai rei\u0161kia, kad WordPress pradeda rodyti PHP prane\u0161imus ir klaidas (priklausomai nuo konfig\u016bracijos, pvz. <code>WP_DEBUG_DISPLAY<\/code>). Tai geriau nei nieko, ypa\u010d kuriant temas ir \u012fskiepius, nes WordPress ekosistemoje vis dar apstu kodo, kuris generuoja <em>notices<\/em> ir kitus \u012fsp\u0117jimus.<\/p>\n\n\n\n<p>Ta\u010diau numatytas i\u0161vedimas \u012f nar\u0161ykl\u0119 da\u017enai atrodo kaip \u201eplika\u201c \u017einut\u0117 be ergonomikos: sunku greitai perskaityti, sunku atsirinkti, kur tikroji problema, o kur tiesiog triuk\u0161mas.<\/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\/20\/2026\/01\/wp_debug-default-scaled.png\" alt=\"Numatytas WP_DEBUG klaid\u0173 i\u0161vedimas WordPress aplinkoje\" class=\"wp-image-107\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-default-scaled.png 2560w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-default-300x264.png 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-default-1024x901.png 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-default-768x676.png 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-default-1536x1351.png 1536w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-default-2048x1802.png 2048w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-default-400x352.png 400w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption class=\"wp-element-caption\">Numatytas WordPress WP_DEBUG: klaidos rodomos tiesiai puslapyje, be patogaus konteksto. \u2014 <em>Forr\u00e1s: Roots.io<\/em><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Acorn: geresn\u0117 WP_DEBUG patirtis be papildom\u0173 \u012fskiepi\u0173<\/h2>\n\n\n\n<p>Acorn pagerina <code>WP_DEBUG<\/code> i\u0161vedim\u0105 tada, kai \u012fjungti <code>WP_DEBUG<\/code> ir <code>WP_DEBUG_DISPLAY<\/code>. Vietoje to, kad pamatytum tik tekstin\u0119 klaid\u0105, gauni ai\u0161kiau suformatuot\u0105 exception puslap\u012f su stack trace ir kontekstu.<\/p>\n\n\n\n<p>Pagal nutyl\u0117jim\u0105 Acorn naudoja Symfony exception handler\u2019\u012f (klaid\u0173 gaudykl\u0119). Symfony ekosistemoje tai \u012fprasta praktika, ir rezultatas WordPress\u2019e tampa gerokai \u201e\u017emogi\u0161kesnis\u201c.<\/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\/20\/2026\/01\/wp_debug-acorn-symfony-scaled.png\" alt=\"Acorn su Symfony exception handler: tvarkingesn\u0117 WordPress klaid\u0173 i\u0161klotin\u0117\" class=\"wp-image-108\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-symfony-scaled.png 2560w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-symfony-300x264.png 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-symfony-1024x901.png 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-symfony-768x676.png 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-symfony-1536x1351.png 1536w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-symfony-2048x1802.png 2048w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-symfony-400x352.png 400w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption class=\"wp-element-caption\">Acorn numatytasis vaizdas: skaitomas exception puslapis vietoje \u201eplikos\u201c \u017einut\u0117s. \u2014 <em>Forr\u00e1s: Roots.io<\/em><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Ignition WordPress\u2019e: kai nori Laravel lygio klaid\u0173 puslapio<\/h2>\n\n\n\n<p>Jei esi dirb\u0119s su Laravel, grei\u010diausiai pa\u017e\u012fsti Ignition \u2013 tai Laravel numatytasis error page nuo Laravel v9. Roots Acorn v3 kontekste atsirado svarbus pokytis: Acorn turi routing palaikym\u0105 Laravel stiliumi, o tai rei\u0161kia, kad Ignition dabar gali veikti ir WordPress projektuose, kuriuose naudojamas Acorn.<\/p>\n\n\n\n<p>Praktinis rezultatas \u2013 labai patogus klaid\u0173 ekranas su ai\u0161kiu stack trace, kontekstu ir geresne navigacija po klaidos prie\u017eastis. Jei tavo komanda mai\u0161o WordPress ir Laravel patirtis, Ignition tampa nat\u016braliu pasirinkimu.<\/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\/20\/2026\/01\/wp_debug-acorn-ignition-scaled.png\" alt=\"Acorn su Ignition: Laravel stiliaus klaid\u0173 puslapis WordPress aplinkoje\" class=\"wp-image-109\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-ignition-scaled.png 2560w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-ignition-300x264.png 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-ignition-1024x901.png 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-ignition-768x676.png 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-ignition-1536x1351.png 1536w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-ignition-2048x1802.png 2048w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-ignition-400x352.png 400w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption class=\"wp-element-caption\">Ignition WordPress\u2019e per Acorn: pana\u0161i patirtis kaip Laravel projektuose. \u2014 <em>Forr\u00e1s: Roots.io<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Kaip \u012fsidiegti Ignition (tik dev aplinkai)<\/h3>\n\n\n\n<p>Ignition diegiamas per Composer kaip development priklausomyb\u0117 (kad neb\u016bt\u0173 diegiama \u012f produkcij\u0105). Komand\u0105 vykdyk tame pa\u010diame kataloge, kur \u012fdiegtas Acorn:<\/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-warning is-style-warning 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\">Pastaba apie saugum\u0105 ir aplinkas<\/h4>\n\n\n<p>Klaidos su stack trace ir kontekstu yra skirtos development aplinkai. U\u017e produkcijos rib\u0173 tokia informacija gali atskleisti per daug detali\u0173 apie sistem\u0105, tod\u0117l praktikoje <code>WP_DEBUG<\/code> ir <code>WP_DEBUG_DISPLAY<\/code> laikomi i\u0161jungti.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Kas su whoops? (aktualu, jei dar s\u0117di ant Acorn v2)<\/h2>\n\n\n\n<p>Iki Acorn v3 da\u017enai buvo rekomenduojama naudoti whoops (populiari PHP klaid\u0173 atvaizdavimo biblioteka). Jei projekte dar naudojamas Acorn v2, whoops vis dar gali suteikti geresn\u012f rezultat\u0105 nei bazinis Symfony puslapis. Visgi Roots rekomenduoja jud\u0117ti \u012f Acorn v3, nes ten Ignition integracija tampa nat\u016bralesn\u0117.<\/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\/20\/2026\/01\/wp_debug-acorn-whoops-scaled.png\" alt=\"Acorn klaid\u0173 i\u0161vedimas su whoops\" class=\"wp-image-110\" srcset=\"https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-whoops-scaled.png 2560w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-whoops-300x264.png 300w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-whoops-1024x901.png 1024w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-whoops-768x676.png 768w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-whoops-1536x1351.png 1536w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-whoops-2048x1802.png 2048w, https:\/\/helloblog.io\/app\/uploads\/sites\/20\/2026\/01\/wp_debug-acorn-whoops-400x352.png 400w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption class=\"wp-element-caption\">whoops \u2013 alternatyvus patogesnis klaid\u0173 vaizdavimas, da\u017eniau minimas Acorn v2 kontekste. \u2014 <em>Forr\u00e1s: Roots.io<\/em><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Jei nenaudoji Acorn: dvi prakti\u0161kos alternatyvos WordPress\u2019e<\/h2>\n\n\n\n<p>Ne visi WordPress projektai turi Acorn \u2013 kartais tai klasikin\u0117 tema, kartais \u012fskiepi\u0173 k\u016brimas, kartais paveld\u0117tas kodas. Tokiu atveju vis tiek galima susitvarkyti debug patirt\u012f su gerai \u017einomais \u012frankiais:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>Query Monitor<\/strong> \u2013 vienas naudingiausi\u0173 \u012franki\u0173 lokaliai: u\u017eklausos, hook\u2019ai, HTTP u\u017eklausos, klaidos ir daug kit\u0173 diagnostikos duomen\u0173.<\/li>\n\n\n<li><strong>Debug Bar<\/strong> \u2013 lengvesnis variantas su pagrindine diagnostika ir debug informacija.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Santrauka: k\u0105 pasirinkti realiame projekte<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li>Visada \u012fjunk <code>WP_DEBUG<\/code> lokaliai \u2013 tai grei\u010diausias b\u016bdas pamatyti triuk\u0161m\u0105, kur\u012f WordPress pasaulis generuoja kasdien.<\/li>\n\n\n<li>Jei naudoji Acorn, gausi tvarkingesn\u012f exception vaizd\u0105 automati\u0161kai (su Symfony handler\u2019iu).<\/li>\n\n\n<li>Jei nori geriausios klaid\u0173 puslapio patirties ir tau artimas Laravel darbo stilius, Acorn v3 + Ignition yra labai stiprus derinys.<\/li>\n\n\n<li>Jei Acorn nenaudoji, Query Monitor da\u017eniausiai duoda did\u017eiausi\u0105 naud\u0105 per ma\u017eiausi\u0105 laik\u0105.<\/li>\n\n<\/ol>\n\n\n<div class=\"references-section\">\n                <h2>Nuorodos \/ \u0160altiniai<\/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:\/\/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\">whoops<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>WP_DEBUG \u012fjungti lengva, bet numatytas klaid\u0173 atvaizdavimas da\u017enai labiau trukdo nei padeda. Parodau, kaip Acorn padaro WordPress klaidas skaitomas, o su Ignition \u2013 beveik \u201eLaravel\u201c lygio.<\/p>\n","protected":false},"author":55,"featured_media":106,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[73,78,77,10,76],"class_list":["post-111","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress","tag-bedrock","tag-laravel-ignition","tag-roots-acorn","tag-wordpress","tag-wp_debug"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/posts\/111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/users\/55"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/comments?post=111"}],"version-history":[{"count":1,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/posts\/111\/revisions"}],"predecessor-version":[{"id":125,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/posts\/111\/revisions\/125"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/media\/106"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/media?parent=111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/categories?post=111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/tags?post=111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}