Preskoči na sadržaj
Bolje debugiranje WordPressa s Acornom: WP_DEBUG koji stvarno pomaže
Hannah Turing
Hannah Turing 2023. February 14. · 5 min read

Bolje debugiranje WordPressa s Acornom: WP_DEBUG koji stvarno pomaže

U WordPress svijetu WP_DEBUG je prva linija obrane: hvata noticee, warninge i fatale prije nego što završe na produkciji. Problem je što je zadani prikaz grešaka dosta sirov — poruka se jednostavno „zalijepi” na vrh stranice, bez konteksta, stack tracea koji se lako prati i bez alata koji olakšavaju dijagnostiku.

Ako koristiš Roots stack (Bedrock + Acorn), možeš dobiti puno ugodnije debug iskustvo. Acorn, kao most između WordPressa i Laravel ekosustava, poboljšava prikaz grešaka kad su WP_DEBUG i WP_DEBUG_DISPLAY uključeni, a uz Ignition dobiješ error page kakav Laravel developeri već godinama uzimaju zdravo za gotovo.

Zašto je default WP_DEBUG output frustrirajući

Kad uključiš WP_DEBUG, WordPress će ti početi prikazivati greške i noticee direktno u HTML outputu. To jest bolje nego ništa (i u lokalnom razvoju bi trebalo biti stalno uključeno), ali u praksi često dobiješ:

  • poruku bez jasnog stack tracea ili s tragom koji nije posebno čitljiv
  • miješanje grešaka s markupom (posebno neugodno kod AJAX-a, REST endpointa ili JSON odgovora)
  • teže snalaženje u kompleksnijim exceptionima i „chainanim” uzrocima
  • sporije debugiranje jer moraš ručno rekonstruirati što se dogodilo i gdje.
Zadani WordPress WP_DEBUG prikaz greške na frontendu
Default WP_DEBUG obično samo „ispisuje” poruku greške u output stranice. — Forrás: Roots.io

Bedrock kontekst: debug je već dio workflowa

Ako ti je projekt baziran na Bedrocku, to je moderniji WordPress boilerplate koji koristi Composer za ovisnosti i jasnu konfiguraciju po okruženjima. U Bedrock development okruženju WP_DEBUG je već uključen po defaultu, što je dobra navika jer rano lovi probleme koje WordPress ekosustav (pluginovi/teme) često emitira kroz noticee i warninge.

Kako Acorn mijenja priču: čitljiv handler za exceptione

Acorn poboljšava WP_DEBUG output kada su WP_DEBUG i WP_DEBUG_DISPLAY aktivni. Umjesto osnovnog ispisa, Acorn po defaultu koristi Symfony exception handler, što znači da greške dobiješ u strukturiranijem i čitljivijem formatu — s jasnijim prikazom exceptiona i konteksta.

Acorn WP_DEBUG output sa Symfony exception handlerom
Acornov default (Symfony) handler daje pregledniji ekran greške od WordPressovog standarda. — Forrás: Roots.io

Ignition na WordPressu: najbolji UX za greške (kad koristiš Acorn v3)

Ako dolaziš iz Laravel svijeta, vjerojatno ti je poznat Ignition — default error page u Laravelu od v9. Dobra vijest: s Acornom v3 došla je podrška za routing u Laravel stilu, a time i podrška za Ignition na WordPress projektima koji koriste Acorn. U praksi to znači moderniji error ekran, bolji stack trace i puno ugodnije kopanje po uzroku problema.

Acorn WP_DEBUG output s Ignition error pageom
Ignition donosi „Laravel-like” prikaz grešaka i često ubrza dijagnostiku. — Forrás: Roots.io

Instalacija Ignitiona (dev ovisnost)

Ignition se u WordPress + Acorn setupu dodaje kao Composer dev dependency. Pokreni naredbu iz direktorija u kojem je instaliran Acorn:

composer require spatie/laravel-ignition --dev

Napomena o okruženjima

Ignition je namijenjen development okruženju. Logika je da detaljni prikaz grešaka ne želiš izlagati na produkciji, pa se instalira s --dev i koristi uz uključeni debug.

Whoops: „stara škola” prije Acorna v3

Prije Acorna v3 često se preporučivao whoops kao ugodnija alternativa Symfony error pageu. Ako si još na Acornu v2, whoops i dalje može biti korak naprijed u odnosu na default prikaz. Ipak, iz perspektive održavanja i mogućnosti, smislenije je ciljati na upgrade na Acorn v3 kada god je to izvedivo.

Acorn WP_DEBUG output s whoops handlerom
Whoops je dugo bio popularan za bolji prikaz grešaka, posebno u starijim setupima. — Forrás: Roots.io

Ako ne koristiš Acorn: dvije provjerene alternative u plugin formi

Ne mora svaki projekt biti na Acornu, ali i dalje ima smisla poboljšati lokalno debugiranje. Dva alata koja se u WordPress zajednici često koriste kao „must-have” su:

  • Query Monitor — posebno koristan za upite prema bazi, hookove, HTTP pozive i performanse; u praksi često postane standardni dio lokalnog okruženja.
  • Debug Bar — jednostavniji, ali solidan način da dobiješ dodatne debug informacije unutar admina.

Praktičan workflow: što bih držao uključenim lokalno

Za lokalni razvoj cilj je da grešku vidiš odmah, u formatu koji možeš brzo pratiti do uzroka. Tipičan „zdravi” setup izgleda ovako:

  • WP_DEBUG uključen u developmentu (idealno kroz konfiguraciju okruženja, npr. Bedrock).
  • WP_DEBUG_DISPLAY uključen lokalno kad ti treba vizualni error screen.
  • Acorn handler (Symfony) kao baseline, a Ignition kao bolja opcija ako koristiš Acorn v3.
  • Query Monitor kao pomoćni alat kad problem nije fatal error nego logika, upiti ili hookovi.

Zaključak

WordPressov WP_DEBUG je nužan, ali njegov default prikaz grešaka rijetko je dovoljno dobar kad radiš na ozbiljnijem projektu. Acorn podiže kvalitetu debugiranja odmah (Symfony handler), a uz Ignition na Acorn v3 dobiješ iskustvo vrlo blisko Laravelu — što najčešće znači brže pronalaženje uzroka, manje „scrollanja” po tragovima i manje izgubljenog vremena.

Hannah Turing

Hannah Turing

WordPress programerka i tehnička spisateljica u HelloWP-u. Pomažem programerima graditi bolje web stranice s modernim alatima poput Laravela, Tailwind CSS-a i WordPress ekosustava. Strastvena sam prema čistom kodu i iskustvu programera.

Svi članci

Pridružite se HelloWP zajednici!

Razgovarajte s nama o WordPressu, web razvoju i podijelite iskustva s drugim developerima.

- članovi
- online
Pridruži se

We use cookies to improve your experience. By continuing, you agree to our Cookie Policy.