Spring til indhold
Bedre WordPress-debugging med Acorn: fra rå WP_DEBUG til fejlsider, der giver mening
Hannah Turing
Hannah Turing 2023. February 14. · 5 min read

Bedre WordPress-debugging med Acorn: fra rå WP_DEBUG til fejlsider, der giver mening

WordPress har en debug-mode, WP_DEBUG, som de fleste af os slår til i lokale miljøer for at fange notices, warnings og egentlige fejl tidligt. Problemet er bare, at standardmåden WordPress viser fejl på, ofte ender som en ustruktureret blok tekst direkte i markupen — og så bruger du mere tid på at afkode fejlen end på at løse den.

Hvis du bygger WordPress-sites med Roots-stacken (fx Bedrock og Acorn), kan du få en markant bedre fejloplevelse: mere læsbare stack traces, tydelig kontekst og et output, der minder om moderne PHP-frameworks. Her er, hvordan det hænger sammen, og hvilke muligheder du har.

Hvorfor WP_DEBUG stadig er værd at køre med (selvom det larmer)

WP_DEBUG er WordPress’ indbyggede switch til at logge og vise PHP-fejl/meddelelser. Den bør være slået til i lokale udviklingsmiljøer, fordi den afslører ting, som ellers bliver overset: uinitialiserede variabler, deprecated calls, “header already sent”, osv.

Særligt i WordPress-økosystemet, hvor themes og plugins i praksis kan komme fra alle mulige kvalitetsniveauer, er WP_DEBUG en effektiv røgalarm. Det er også derfor Bedrock (Roots’ moderne WordPress-boilerplate med Composer) typisk har debug aktiveret i development-konfigurationen som udgangspunkt.

Standard WP_DEBUG-output: bedre end ingenting, men ikke ret brugbart

Når WP_DEBUG er slået til, vil WordPress som udgangspunkt bare dumpe fejl og notices direkte på siden. Det kan være fint til den hurtige “hvad gik galt?”, men det giver sjældent en god arbejdsgang: stack traces kan være svære at læse, og præsentationen passer dårligt ind på siden (og kan i værste fald ødelægge HTML-outputtet).

Standard WP_DEBUG-output i WordPress, hvor fejl vises som rå tekst på siden
Standard WP_DEBUG: rå fejltekst direkte i outputtet. — Forrás: Roots.io

Acorn: når WordPress får en mere moderne fejloplevelse

Acorn er Roots’ integration af Laravel-komponenter i WordPress. Når du kører med Acorn, kan den forbedre din fejlvisning, når både WP_DEBUG og WP_DEBUG_DISPLAY er aktiveret. Det betyder i praksis, at du får en rigtig exception handler i stedet for WordPress’ rå output.

Acorns standard: Symfony exception handler

Out of the box bruger Acorn Symfony’s exception handler. Den giver en mere struktureret præsentation af exceptions, så du hurtigere kan finde årsag, fil og linjenummer — uden at skulle “læse” dig igennem en mur af tekst.

Acorn WP_DEBUG-output med Symfony exception handler, som viser mere læsbar fejlvisning
Acorn med Symfony exception handler: mere læsbart og struktureret. — Forrás: Roots.io

Ignition: Laravel-fejlsiden på WordPress (når du bruger Acorn v3)

Hvis du kommer fra Laravel, kender du sandsynligvis Ignition — den fejlside der siden Laravel v9 har været standardoplevelsen ved exceptions. Med Acorn v3 kom support for routing i Laravel-stil, og det åbner også for at bruge Ignition på WordPress-sites, der kører Acorn.

I praksis giver Ignition den mest behagelige debugging-oplevelse: overskuelig fejlvisning, tydelige stack frames og et UI, der gør det nemt at navigere i, hvad der faktisk skete.

Acorn WP_DEBUG-output med Ignition, som ligner Laravels fejlside
Acorn + Ignition: Laravel-agtig fejlside på et WordPress-site. — Forrás: Roots.io

For at tage Ignition i brug på et WordPress-projekt med Acorn, installerer du pakken som en development dependency fra den mappe, hvor Acorn er installeret:

composer require spatie/laravel-ignition --dev

Hvornår giver Ignition mening?

Ignition er især oplagt, hvis du i forvejen arbejder Laravel-agtigt i dit WordPress-projekt (fx Sage/Acorn) og vil have samme fejloplevelse på tværs af projekter.

Whoops: den klassiske forbedring (især relevant før Acorn v3)

Før Acorn v3 var anbefalingen typisk at bruge whoops sammen med Acorn for at få bedre fejlsider end Symfony-udgaven. Hvis du stadig sidder på Acorn v2, kan whoops stadig være en klar opgradering i dagligdagen, selvom det generelt giver mening at kigge på en opgradering til Acorn v3.

Acorn WP_DEBUG-output med Whoops, som viser en mere brugervenlig fejl-side
Acorn + whoops: stadig en solid fejloplevelse, særligt i ældre setups. — Forrás: Roots.io

Hvis du ikke bruger Acorn: to praktiske alternativer

Der findes også solide værktøjer, hvis du kører “klassisk” WordPress uden Acorn. To plugins, der ofte er værd at have i værktøjskassen lokalt:

  • Query Monitor – ekstremt nyttigt i lokale miljøer til at inspicere queries, hooks, HTTP-kald, PHP-errors og performance.
  • Debug Bar – en enkel debug-toolbar, der gør det nemmere at se relevante debug-informationer uden at rode i outputtet.

Praktisk opsummering

  1. Kør med WP_DEBUG i dine lokale miljøer for at fange fejl tidligt.
  2. Acorn kan forbedre fejlvisningen markant, når WP_DEBUG && WP_DEBUG_DISPLAY er aktiveret.
  3. Standard i Acorn er Symfony exception handler — en klar forbedring i læsbarhed.
  4. Med Acorn v3 kan du bruge Ignition (spatie/laravel-ignition) og få en Laravel-lignende fejlside.
  5. På ældre setups kan whoops stadig give en bedre oplevelse end standardfejlsider.
  6. Uden Acorn er Query Monitor og Debug Bar gode bud på et mere produktivt debug-setup.
Hannah Turing

Hannah Turing

WordPress-udvikler og teknisk skribent hos HelloWP. Jeg hjælper udviklere med at bygge bedre hjemmesider med moderne værktøjer som Laravel, Tailwind CSS og WordPress-økosystemet. Passioneret omkring ren kode og udvikleroplevelse.

Alle indlæg

Bliv en del af HelloWP-communityet!

Chat med os om WordPress og webudvikling, og del erfaringer med andre udviklere.

- medlemmer
- online
Deltag

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