Liigu sisu juurde
Paremini loetavad vead WordPressis: WP_DEBUG koos Acorniga
Hannah Turing
Hannah Turing 2023. February 14. · 4 min read

Paremini loetavad vead WordPressis: WP_DEBUG koos Acorniga

Kui teed WordPressi teemasid või pluginaid, siis WP_DEBUG on sisuliselt turvavöö: see peab olema arenduses sees, muidu jäävad notice’id, deprecated-teated ja “imelikud” vead liiga kauaks varju. Probleem on selles, et WordPressi vaikimisi WP_DEBUG väljund on üsna toore võitu — veateated visatakse lihtsalt lehe sisse ja ongi kõik.

Roots’i ökosüsteemis (Bedrock + Acorn) saab seda kogemust märgatavalt paremaks teha. Acorn suudab WP_DEBUG puhul kuvada arendajale palju loetavama exception view, ning soovi korral tuua WordPressi juurde ka Ignitioni — sama error page’i, millega Laravel arendajad on harjunud.

Mis WP_DEBUG tegelikult lahendab (ja mis jääb lahendamata)

WP_DEBUG on WordPressi debug-režiim, mis aktiveeritakse konfiguratsioonis WP_DEBUG konstandiga. Arenduskeskkonnas on mõistlik see alati sisse lülitada, sest WordPressi ökosüsteemis leidub väga palju koodi, mis tekitab notice’e või warnings’e, ning need viitavad sageli päris probleemidele (valed andmetüübid, valed hook’i argumendid, vananenud API kasutus jne).

Vaikimisi kogemus on aga ebamugav: veateade ilmub otse HTML-i sisse, tihti ilma kontekstita, mõnikord katkise layout’iga ja sellisel kujul, mida on keeruline kiiresti skännida.

WordPressi WP_DEBUG vaikimisi veaväljund brauseris
WP_DEBUG vaikimisi väljund on pigem toores: teade kuvatakse otse lehe sees. — Forrás: Roots.io

Bedrocki puhul on arendusrežiim juba mõistlikult paigas

Kui kasutad Bedrocki (Roots’i modernne WordPressi boilerplate, mis kasutab Composeri), siis on arenduskeskkonna konfiguratsioonis WP_DEBUG juba vaikimisi aktiivne. See on üks neid väikseid, aga väga praktilisi asju, mis teeb Bedrocki arendustsükli sujuvamaks.

Kuidas Acorn muudab WP_DEBUG kogemust

Acorn on Roots’i Laravelist inspireeritud rakenduskiht WordPressi jaoks. Selle üks meeldiv kõrvalmõju on parem error handling: kui WP_DEBUG ja WP_DEBUG_DISPLAY on sisse lülitatud, hakkab Acorn kuvama erandeid arendajasõbralikumas vormis.

1) Acorni vaikimisi exception handler (Symfony)

Acorni vaikekäitumine kasutab Symfony exception handler’it. Tulemuseks on puhtam ja paremini loetav error page, kus stack trace ja veateate struktuur on selgem kui WordPressi default väljundis.

Acorni Symfony exception handleri vealeht WP_DEBUG režiimis
Acorni vaikimisi (Symfony) vealeht annab märksa paremini loetava stack trace’i. — Forrás: Roots.io

2) Ignition: Laravelile omane vealeht ka WordPressis

Kui tuled Laravelist, siis Ignition on tõenäoliselt tuttav — see on Laravel v9 ajast vaikimisi error page. Acorn v3 tõi WordPressi poolele parema Laraveli routing’u toe ning sellega koos ka võimaluse kasutada Ignitioni WordPressi saidis, mis töötab Acorni peal.

Praktikas tähendab see, et saad arenduses oluliselt parema veaanalüüsi kogemuse: selgem stack trace, paremini esitletud kontekst ja üldiselt “modernse PHP” tunnetus ka WordPressi projektis.

Acorni Ignitioni vealeht WordPressis WP_DEBUG režiimis
Ignition on paljudele Laravel arendajatele kõige mugavam viis exception’ite uurimiseks. — Forrás: Roots.io

Ignitioni paigaldamine (ainult arendusse)

Ignitioni kasutuselevõtt käib Composeri kaudu. Käivita see käsk samas kataloogis, kus Acorn on projektis paigaldatud:

composer require spatie/laravel-ignition --dev

Märkus

--dev hoiab Ignitioni arendussõltuvusena. Tootmiskeskkonnas ei ole detailne error page tavaliselt soovitav.

3) whoops: varasem “klassika” Acorni kõrval

Enne Acorn v3 aega soovitati Acorni juurde tihti whoops’i (filp/whoops), mis pakkus WordPressi defaultist paremat veavaadet. Kui oled veel Acorn v2 peal, on whoops endiselt üks viis kogemust parandada, kuigi Roots ise suunab pigem Acorn v3 peale liikumisele.

Acorni vealeht whoopsiga WP_DEBUG režiimis
whoops oli kaua populaarne valik loetavamaks stack trace’iks. — Forrás: Roots.io

Kui Acornit ei kasuta: kaks praktilist alternatiivi

Isegi ilma Acornita saab WordPressi debugimise igapäevaelu paremaks teha. Kaks levinud varianti on:

  • Query Monitor — väga tugev tööriist päringute, hook’ide, HTTP päringute, PHP vigade jpm jälgimiseks; paljudes tiimides on see lokaalse arenduse “must-have”.
  • Debug Bar — lihtsam, klassikaline debug-paneel WordPressi adminis.

Praktiline soovitus: hoia debug arenduses agressiivselt sees

Hea rutiin on hoida arenduskeskkonnas WP_DEBUG alati aktiivsena ja parandada notice’id/warnings’id kohe, kui need tekivad. Eriti Bedrocki + Acorni puhul on see mugav: saad kohe arusaadava exception view ning vajadusel Ignitioni tasemel tööriistad, ilma et peaksid WordPressi default väljundiga maadlema.

Kokkuvõte

  1. WP_DEBUG peaks arenduses alati sees olema, sest see paljastab probleemid varakult.
  2. WordPressi vaikimisi WP_DEBUG väljund on funktsionaalne, kuid arendaja jaoks ebamugav ja väheinformatiivne.
  3. Acorn parandab error handling’ut: vaikimisi Symfony exception handler annab loetavama vaate.
  4. Acorni puhul saab lisada Ignitioni (composer require spatie/laravel-ignition --dev), mis toob Laravelile omase parima vealehe kogemuse WordPressi.
  5. Kui Acornit ei kasuta, on Query Monitor ja Debug Bar head alternatiivid.
Hannah Turing

Hannah Turing

WordPressi arendaja ja tehniline kirjutaja HelloWP-s. Aitan arendajatel luua paremaid veebisaite kaasaegsete tööriistadega nagu Laravel, Tailwind CSS ja WordPressi ökosüsteem. Kirglik puhta koodi ja arendajakogemuse suhtes.

Kõik postitused

Liitu HelloWP kogukonnaga!

Vestle meiega WordPressist ja veebiarendusest ning jaga kogemusi teiste arendajatega.

- liiget
- võrgus
Liitu

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