Ugrás a tartalomra
Átláthatóbb WordPress hibakeresés Acornnal: Symfony, Ignition vagy Whoops
Hannah Turing
Hannah Turing 2023. február 14. · 5 min read

Átláthatóbb WordPress hibakeresés Acornnal: Symfony, Ignition vagy Whoops

WordPress fejlesztés közben a WP_DEBUG az egyik legolcsóbb és leghasznosabb biztosíték: gyorsan előhozza a notice-okat, warningokat és fatál hibákat. A gond csak az, hogy a WordPress alapértelmezett hibamegjelenítése (amikor WP_DEBUG és a képernyőre írás is engedélyezett) elég fapados: a hibaüzenetek egyszerűen ráégnek az oldal tetejére, kontextus nélkül, nehezen olvashatóan.

Ha Roots-alapú stackben dolgozol (Bedrock + Acorn), akkor jó eséllyel már eleve modernebb fejlesztői élményre építesz. Az Acorn ugyanis képes jelentősen kulturáltabb error page-et adni WordPress alatt is, és ezzel a hibakeresés tempója konkrétan érezhetően javul.

Miért „kevés” a natív WP_DEBUG kimenet?

A WP_DEBUG lényege, hogy fejlesztéskor ne maradjanak rejtve a problémák. Ez különösen fontos, mert a WordPress ökoszisztémában rengeteg bővítmény és sablon szór notice-okat vagy hibákat, amik később (például PHP verzióváltásnál) komoly gondot okozhatnak.

A natív megjelenítés viszont jellemzően:

  • széteső formázással jelenik meg az oldal tetején
  • nem ad szép stack trace-t (vagy ha ad is, nehezen áttekinthető)
  • nem segít gyorsan megtalálni, melyik fájl/sor/függvényhívás az igazi ok
A WordPress alapértelmezett WP_DEBUG hibakiírása a képernyőn
A natív WP_DEBUG kimenet hasznos, de nehezen olvasható és gyorsan káosszá válik. — Forrás: Roots.io

Mit csinál másképp az Acorn?

Az Acorn egy olyan projekt, ami WordPress-ben hoz be Laravel-közeli komponenseket és fejlesztői kényelmet. Hibakezelésnél az a nagy nyereség, hogy amikor a WP_DEBUG és a képernyőre történő megjelenítés is aktív, akkor az Acorn egy jóval olvashatóbb exception oldalt ad a nyers WordPress-kiírás helyett.

Mikor lép életbe?

A forrás alapján az Acorn akkor javítja a hibakimenetet, ha WP_DEBUG és WP_DEBUG_DISPLAY is engedélyezve van. (Utóbbi a képernyőre írást szabályozza.)

Alapértelmezett Acorn hibakimenet: Symfony exception handler

Acornból alapból a Symfony exception handler érkezik. Ez már önmagában nagy ugrás: áttekinthetőbb a kivétel (exception) megjelenítése, könnyebb a stack trace-t böngészni, gyorsabban találsz vissza a hibás sorhoz.

Acorn alapértelmezett WP_DEBUG kimenet Symfony exception handlerrel
Symfony exception handlerrel is sokkal vállalhatóbb a hibakeresés. — Forrás: Roots.io

Ignition: Laravel-szintű hibakezelés WordPress-ben is

Ha Laravelből jössz, az Ignition nagy eséllyel ismerős: a Laravel 9 óta ez az alapértelmezett hibapanel. Az Acorn v3 egyik fontos változása, hogy már támogatja a Laravel routingot (routing = útvonalkezelés), és ezzel együtt WordPress-es Acorn projektekben is használhatóvá vált az Ignition.

Gyakorlatban ez a legkomfortosabb hibakeresési élmény: modern, jól tagolt error page, könnyen olvasható stack trace, és kifejezetten fejlesztőbarát tálalás.

Acorn WP_DEBUG kimenet Ignitionnel
Ignitionnel a WordPress-es hibakeresés is Laravel-hangulatot kap. — Forrás: Roots.io

Ignition telepítése Composerrel

A telepítés a forrás alapján egy dev függőség felvétele. Arra figyelj, hogy ugyanabban a könyvtárban futtasd, ahol az Acorn is telepítve van (tipikusan a projekt gyökere, ahol a composer.json található).

composer require spatie/laravel-ignition --dev

Whoops: régebbi Acorn verziókhoz bevált opció

Az Acorn v3 előtt gyakori javaslat volt a whoops használata az Acorn mellé. Ha még Acorn v2-n vagy, a forrás alapján továbbra is van értelme: a Symfony-s oldalhoz képest jobb fejlesztői élményt adhat.

Acorn WP_DEBUG kimenet Whoops-szal
Whoops: alternatíva, főleg ha régebbi Acornon ragadt egy projekt. — Forrás: Roots.io

Verziók és döntés

A forrás javaslata: ha Acorn v2-t használsz, érdemes Acorn v3-ra frissíteni. Whoops inkább azoknak lehet kapaszkodó, akik még nem tudnak váltani.

Mi van, ha nem használsz Acornt? (Bővítményes alternatívák)

Nem minden projekt Bedrock + Acorn alapú, és ez rendben van. Ha csak a WP_DEBUG kimenetet szeretnéd értelmezhetőbbé tenni, akkor a klasszikus WordPress-es út a fejlesztői bővítmények világa.

  • Query Monitor – gyakorlatilag kötelező darab lokális WordPress környezetben
  • Debug Bar – egyszerűbb, de sok esetben már ez is nagy segítség

Gyakorlati javaslat: hogyan állj neki egy modern debug setupnak?

  1. Lokálban mindig legyen bekapcsolva a WP_DEBUG (és csak ott).
  2. Ha Bedrocköt használsz, nézd meg az environment alapú beállításokat: fejlesztői környezetben jellemzően alapból aktív a debug.
  3. Acorn esetén hagyatkozhatsz az alap Symfony handlerre, de ha komolyan fejlesztesz és sokat hibakeresel, az Ignition kényelmi ugrás.
  4. Ha nem Acornos a projekt, telepíts Query Monitort, és használd napi szinten.

Összefoglaló

A WP_DEBUG bekapcsolása továbbra is a WordPress fejlesztés egyik alapja, de a natív hibakiírás könnyen átláthatatlanná válik. Acorn alatt rögtön kapsz egy kulturáltabb exception oldalt (Symfony), és Acorn v3-mal már Ignitiont is használhatsz, ami sokaknak a legjobb fejlesztői élmény. Ha pedig Acorn nélkül dolgozol, a Query Monitor és a Debug Bar jó, bevált alternatívák.

Hannah Turing

Hannah Turing

WordPress fejlesztő és technikai író a HelloWP-nél. Modern eszközökkel, mint a Laravel, Tailwind CSS és a WordPress ökoszisztéma, segítek fejlesztőknek jobb weboldalakat építeni. Szenvedélyem a tiszta kód és a fejlesztői élmény.

Összes bejegyzés

Csatlakozz a HelloWP közösséghez!

Beszélgess velünk a WordPressről, a webfejlesztésről, és oszd meg a tapasztalataidat más fejlesztőkkel.

- tag
- online
Csatlakozás

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