Labāka WordPress atkļūdošana ar Acorn: pārskatāmākas kļūdas, mazāk minēšanas
Ja WordPress projekts sāk mest notice, warning vai fatālas kļūdas, pirmais solis parasti ir ieslēgt WP_DEBUG. Problēma — WordPress noklusējuma kļūdu izdruka bieži vien ir grūti lasāma: teksts “pa virsu lapai”, minimāls konteksts un stack trace, kas ne vienmēr palīdz ātri saprast, kur tieši viss salūza.
Roots ekosistēmā (Bedrock + Acorn) šo pieredzi var būtiski uzlabot. Acorn ir Roots komponents, kas ienes WordPress projektā Laravel stila iespējas (piemēram, helperus) un arī modernāku error handling (kļūdu apstrādi). Rezultāts: tu redzi kļūdas lapu, kas vairāk atgādina mūsdienīgu PHP framework nekā klasisku WordPress.
Kāpēc WP_DEBUG ir jābūt ieslēgtam lokāli
WP_DEBUG ir WordPress iebūvēts “debug mode” — to aktivizē ar konstanti WP_DEBUG konfigurācijā. Lokālajā izstrādē tas ir praktiski obligāts: ātrāk pamani nepareizus mainīgos, deprecations, kļūdainus hook izsaukumus un citas nianses, kas vēlāk staging/production vidē var pārvērsties par reālām problēmām.
Ja strādā ar Bedrock (mūsdienīgs WordPress boilerplate ar Composer), izstrādes vidē WP_DEBUG parasti jau ir ieslēgts pēc noklusējuma, tāpēc bieži vien atliek tikai sakārtot to, kā kļūdas tiek rādītas.
WordPress noklusējuma WP_DEBUG izvade: darbojas, bet nav ērta
Noklusējuma scenārijā WordPress vienkārši izvada paziņojumu vai kļūdu tieši lapā. Tas ir labāk nekā klusums, taču, ja tev jāatrisina sarežģītāks izņēmums (exception) ar dziļu izsaukumu ķēdi (stack trace), šī izdruka ātri kļūst par “atrodi adatu siena kaudzē” uzdevumu.

WP_DEBUG ziņojumi WordPress lapā ir minimālistiski un bieži vien grūti lasāmi. — Forrás: Roots.ioKo dara Acorn: sakarīga kļūdu lapa, kad WP_DEBUG ir ieslēgts
Acorn uzlabo WP_DEBUG pieredzi gadījumā, kad ir aktīvi WP_DEBUG un WP_DEBUG_DISPLAY. Būtiskā doma: nevis izdrukāt pliku tekstu, bet izmantot mūsdienīgu exception handler (izņēmumu apstrādātāju), kas parāda kļūdu strukturēti.
Acorn noklusējuma kļūdu apstrāde ar Symfony exception handler
Pēc noklusējuma Acorn izmanto Symfony exception handler. Praktiski tas nozīmē: pārskatāmāka kļūdas lapa, labāks stack trace attēlojums un ātrāka orientēšanās, kurā failā/rindā problēma radusies.

Ignition WordPress projektā: Laravel līmeņa debug lapa
Ja tev ir Laravel pieredze, visticamāk pazīsti Ignition — tā ir Laravel noklusējuma kļūdu lapa kopš Laravel v9. No Acorn v3 puses ir pieejams Laravel routing atbalsts, un līdz ar to WordPress projektos ar Acorn var izmantot arī Ignition. Tas parasti dod vispatīkamāko kļūdu diagnostikas pieredzi: bagātīgāks konteksts, skaidrāka navigācija, ērtāks stack trace.

Lai sāktu lietot Ignition, to var pievienot ar Composer kā izstrādes atkarību (no tās pašas mapes, kur instalēts Acorn):
composer require spatie/laravel-ignition --devSvarīga nianse par vidi
Ignition parasti ir jēgpilns tieši lokālajā izstrādē. Praktiski: turi WP_DEBUG ieslēgtu lokāli, bet rūpīgi izvērtē, ko rādi produkcijā, lai nejauši neatklātu sensitīvu informāciju (ceļus, mainīgos, konfigurāciju).
Whoops: vecāks, bet joprojām izmantojams variants
Pirms Acorn v3 bieži rekomendēja Whoops (populārs PHP error handler). Ja esi uz Acorn v2 un vēl neesi migrējis, Whoops var dot patīkamāku rezultātu nekā Symfony kļūdu lapa, un tas joprojām ir reāls uzlabojums salīdzinājumā ar WordPress noklusējumu. Tomēr no ilgtermiņa uzturēšanas viedokļa loģiskākais ceļš ir skatīties Acorn v3 virzienā.

Ko darīt, ja Acorn projektā nav: spraudņi, kas uzlabo debug ikdienu
Ne visi WordPress projekti izmanto Acorn, un dažkārt tas arī nav mērķis (piemēram, ja uzturi ļoti “tīru” klasisku WP uzbūvi). Arī tad vari uzlabot diagnostiku ar spraudņiem, kas palīdz saprast, kas notiek pieprasījuma laikā.
- Query Monitor — viens no noderīgākajiem rīkiem lokālai WordPress izstrādei; palīdz analizēt vaicājumus, hook izpildi, PHP kļūdas un daudz ko citu.
- Debug Bar — vienkāršāks, bet bieži pietiekams variants pamatinformācijai par debug stāvokli un izpildi.
Praktiska pieeja: kā salikt kopā jēdzīgu atkļūdošanas plūsmu
- Lokāli vienmēr turi ieslēgtu
WP_DEBUG(un parasti arīWP_DEBUG_DISPLAY, ja strādā pārlūkā). - Ja projekts ir uz Bedrock + Acorn, izmanto Acorn error handling, lai kļūdas būtu lasāmas un ar kontekstu.
- Acorn v3 gadījumā apsver Ignition kā ērtāko kļūdu lapu (Composer
--devatkarība). - Ja Acorn nav, uzliec Query Monitor un izmanto to kā “instrumentu paneli” problēmu meklēšanai.
Kopsavilkums
WP_DEBUG pats par sevi ir minimums jebkurā WordPress izstrādes vidē, taču noklusējuma kļūdu izvade reti palīdz ātri tikt līdz saknei. Acorn šo situāciju būtiski uzlabo: pēc noklusējuma ar Symfony exception handler, bet Acorn v3 gadījumā arī ar Ignition, kas WordPress projektam iedod ļoti pazīstamu Laravel stila atkļūdošanas pieredzi. Ja Acorn netiek lietots, praktisks plāns B ir Query Monitor vai Debug Bar.
Hannah Turing
WordPress izstrādātāja un tehniskā rakstniece HelloWP. Es palīdzu izstrādātājiem veidot labākas vietnes ar moderniem rīkiem, piemēram, Laravel, Tailwind CSS un WordPress ekosistēmu. Aizraujos ar tīru kodu un izstrādātāja pieredzi.
Visas publikācijas