Lepšie debugovanie vo WordPress: ako Acorn spraví z WP_DEBUG použiteľný nástroj
Keď ladíš WordPress projekt, WP_DEBUG je jedna z prvých vecí, ktoré chceš mať zapnuté. Problém je, že základný výstup WordPressu je často nečitateľný: hlášky a notices sa len „vylejú“ na stránku a pri výnimkách sa rýchlo stratíš v stack trace.
V projektoch postavených na Roots stacku (Bedrock + Acorn) sa to dá posunúť o úroveň vyššie. Acorn vie upratať zobrazovanie chýb tak, aby si mal reálnu šancu problém rýchlo identifikovať — a ak prichádzaš z Laravelu, bude ti to celé veľmi povedomé.
WP_DEBUG: dobrý základ, slabý výstup
WordPress debug režim sa zapína cez konštantu WP_DEBUG v konfigurácii. V lokálnom vývoji by mal byť prakticky vždy zapnutý, pretože odhalí notices, deprecated hlášky a chyby, ktoré by inak ostali skryté až do produkcie.
Základný problém: WordPress pri WP_DEBUG (a typicky aj WP_DEBUG_DISPLAY) zobrazuje chyby priamo v HTML výstupe. Je to lepšie než nič, ale pri reálnom vývoji pluginov/tém narazíš na to, že:
- notices a warnings rozbijú layout a zneprehľadnia stránku
- stack trace je často ťažko čitateľný
- chyby z rôznych pluginov/tém sa miešajú s vlastným kódom
- debugovanie je pomalšie, lebo sa musíš prehrabávať v surovom výstupe

Čo prináša Acorn do debugovania
Acorn je runtime vrstva od Roots, ktorá prináša do WordPressu vybrané časti Laravelu (napr. helpery, kontajner, a v novších verziách aj routing). Jedna z veľmi praktických vecí je, že vie vylepšiť error handling, keď máš zapnuté WP_DEBUG a zároveň WP_DEBUG_DISPLAY.
1) Default v Acorne: Symfony exception handler
Bez ďalších balíčkov Acorn štandardne použije Symfony exception handler. Výsledok je prehľadnejšia stránka s chybou: lepšie formátovaný stack trace, zrozumiteľnejšie zobrazenie výnimky a celkovo menej „chaosu“ na obrazovke.

2) Najlepší zážitok: Ignition (ako v Laraveli)
Ak robíš aj v Laraveli, poznáš Ignition — defaultnú error page (od Laravel v9). Od Acorn v3 je Ignition podporovaný aj vo WordPress projektoch používajúcich Acorn, čo je veľmi príjemný upgrade oproti základnému zobrazeniu chýb.
Ignition typicky ponúkne výbornú čitateľnosť výnimiek, užitočné kontextové informácie a pohodlnejšie prechádzanie stack trace.

Nasadenie v dev prostredí je jednoduché — Ignition sa do projektu pridáva ako dev dependency cez Composer z adresára, kde máš nainštalovaný Acorn:
composer require spatie/laravel-ignition --dev
Poznámka k prostrediu
Ignition (aj samotné zobrazovanie chýb) má zmysel držať striktne v lokále alebo v izolovanom stagingi. V produkcii sa typicky spoliehaš na logovanie a bezpečné error stránky.
3) Alternatíva pre staršie projekty: whoops
V časoch pred Acorn v3 sa často odporúčal balík whoops ako zlepšenie oproti základnej Symfony stránke. Ak máš ešte projekt na Acorn v2, whoops je stále možnosť, ako získať čitateľnejší výstup chýb. Roots však pri starších projektoch dáva zmysel riešiť upgrade na Acorn v3, ak je to možné.

Bedrock a debug nastavenia v dev prostredí
Ak používaš Bedrock (WordPress boilerplate postavený na Composer-i), v development prostredí býva WP_DEBUG typicky zapnutý už v základe. To je dobrý default: lokálne chceš vidieť chyby hneď, nie až pri nasadení.
Keď Acorn nepoužívaš: čo stojí za to mať v lokále
Aj mimo Acornu existujú nástroje, ktoré spravia debugovanie WordPressu praktickejším. Dve osvedčené voľby:
- Query Monitor – silný pomocník pre výkon, databázové query, hooky, HTTP requesty a veľa ďalšieho; v lokálnom prostredí je to takmer povinná výbava
- Debug Bar – jednoduchší panel na základné debug informácie a doplnky
Zhrnutie: čo si z toho zobrať do praxe
WP_DEBUGmaj v lokále zapnutý vždy — notices a deprecated hlášky sú v ekosystéme WordPressu bežné.- Defaultný WP_DEBUG output je limitovaný, preto sa oplatí zlepšiť error handling.
- Ak používaš Acorn, už základný Symfony handler spraví veľký rozdiel.
- S Acorn v3 vieš nasadiť Ignition (Spatie) a dostať debug UX podobné Laraveli.
- Bez Acornu dávajú zmysel pluginy ako Query Monitor a Debug Bar na systematickejšie ladenie.
Referencie / Zdroje
Hannah Turing
WordPress vývojárka a technická redaktorka v HelloWP. Pomáham vývojárom vytvárať lepšie webové stránky s modernými nástrojmi ako Laravel, Tailwind CSS a ekosystém WordPress. Vášnivo sa venujem čistému kódu a vývojárskej skúsenosti.
Všetky príspevky