Μετάβαση στο περιεχόμενο
Καλύτερο debugging στο WordPress με Acorn: από το WP_DEBUG σε Ignition
Hannah Turing
Hannah Turing 2023. February 14. · 2 min read

Καλύτερο debugging στο WordPress με Acorn: από το WP_DEBUG σε Ignition

Όταν γράφεις plugins, themes ή custom integrations στο WordPress, το να έχεις ενεργό το WP_DEBUG στο local δεν είναι “nice to have” — είναι βασικό εργαλείο επιβίωσης. Το πρόβλημα είναι ότι η προεπιλεγμένη συμπεριφορά του WordPress στο debug mode συχνά δεν σε βοηθάει όσο θα ήθελες: βγάζει notices/errors ωμά στο screen, χωρίς context, χωρίς ωραίο stack trace, χωρίς “developer-friendly” παρουσίαση.

Αν δουλεύεις σε project που βασίζεται σε Roots/Bedrock και χρησιμοποιείς Acorn (το κομμάτι που φέρνει Laravel-like δυνατότητες μέσα στο WordPress), μπορείς να αναβαθμίσεις δραστικά την εμπειρία του debugging. Με λίγα λόγια: καλύτερος exception handler, πιο καθαρές σελίδες σφάλματος και — με τη σωστή επιλογή — εμπειρία πολύ κοντά σε Laravel.

Τι είναι το WP_DEBUG και γιατί δεν αρκεί μόνο του

Το WP_DEBUG είναι η κλασική “ασφάλεια” του WordPress για development: ενεργοποιείται μέσω της ομώνυμης constant στο config και εμφανίζει PHP notices, warnings και errors που αλλιώς μπορεί να περνούσαν απαρατήρητα. Για local development πρέπει να είναι πάντα ανοιχτό, ειδικά επειδή στο οικοσύστημα υπάρχουν πολλά θέματα/πρόσθετα που πετάνε notices και μικρο-σφάλματα τα οποία αργά ή γρήγορα θα σε χτυπήσουν.

Η default έξοδος όμως είναι αρκετά πρωτόγονη: τα μηνύματα εμφανίζονται κατευθείαν στη σελίδα. Αυτό μεν σε ενημερώνει, αλλά δεν σε οδηγεί πάντα γρήγορα στη ρίζα του προβλήματος.

Προεπιλεγμένη εμφάνιση σφαλμάτων WP_DEBUG στο WordPress
Η κλασική “ωμή” έξοδος του WP_DEBUG στην οθόνη. — Forrás: Roots.io

Bedrock: debug-by-default στο development

Αν χτίζεις WordPress sites με Bedrock (modern boilerplate της Roots με Composer), το development environment είναι ήδη ρυθμισμένο ώστε το WP_DEBUG να είναι ενεργό by default. Αυτό σε βάζει εξαρχής στη σωστή νοοτροπία: τα προβλήματα πρέπει να φαίνονται νωρίς, πριν φύγει ο κώδικας προς staging/production.

Acorn και WP_DEBUG: πιο καθαρό error handling

Το Acorn βελτιώνει την εμπειρία όταν είναι ενεργά τα WP_DEBUG και WP_DEBUG_DISPLAY. Στην πράξη, αντί να βλέπεις απλά ένα μήνυμα στη σελίδα, παίρνεις πιο δομημένη παρουσίαση του exception, με καλύτερη αναγνωσιμότητα και περισσότερο χρήσιμο context.

Default Acorn output (Symfony exception handler)

Out of the box, το Acorn χρησιμοποιεί τον exception handler του Symfony. Αυτό από μόνο του είναι ένα σημαντικό βήμα μπροστά: πιο “καθαρή” σελίδα σφάλματος, με σαφέστερο stack trace σε σχέση με το default WordPress output.

Acorn WP_DEBUG output με Symfony exception handler
Η προεπιλεγμένη σελίδα σφάλματος του Acorn (Symfony handler). — Forrás: Roots.io

Ignition: εμπειρία τύπου Laravel μέσα στο WordPress

Αν προέρχεσαι από Laravel, πιθανότατα έχεις συνηθίσει το Ignition — το default error page του Laravel από τη v9 και μετά. Από τη στιγμή που το Acorn v3 υποστηρίζει routing τύπου Laravel, ανοίγει και ο δρόμος για Ignition σε WordPress sites που βασίζονται στο Acorn.

Στην πράξη, αυτό σημαίνει πιο ολοκληρωμένο error page, με “Laravel-like” εμπειρία debugging: πιο ευανάγνωστα exceptions και γενικά πιο γρήγορη διάγνωση.

Acorn WP_DEBUG output με Ignition (Spatie)
Ignition σε WordPress μέσω Acorn: πιο κοντά σε Laravel debugging workflow. — Forrás: Roots.io

Εγκατάσταση Ignition (μόνο για dev)

Για να χρησιμοποιήσεις Ignition σε WordPress project με Acorn, το εγκαθιστάς ως dev dependency με Composer, από τον ίδιο φάκελο όπου είναι εγκατεστημένο το Acorn:

composer require spatie/laravel-ignition --dev

Σημείωση για περιβάλλοντα

Το Ignition προορίζεται για development. Η ενεργοποίηση του WP_DEBUG/WP_DEBUG_DISPLAY πρέπει να γίνεται με ξεκάθαρους κανόνες ανά περιβάλλον, ώστε να μην εμφανίζονται σφάλματα σε production.

Whoops: η παλιότερη επιλογή (κυρίως για Acorn v2)

Πριν από το Acorn v3, μια συνηθισμένη αναβάθμιση του default error page ήταν το whoops. Αν βρίσκεσαι ακόμη σε Acorn v2, παραμένει μια επιλογή που μπορεί να δώσει καλύτερη εμπειρία από το Symfony error page. Παρ’ όλα αυτά, η πιο καθαρή κατεύθυνση είναι η αναβάθμιση σε Acorn v3, ώστε να επωφεληθείς και από τη δυνατότητα Ignition.

Acorn WP_DEBUG output με whoops
Whoops ως εναλλακτικό error page σε setups πριν το Acorn v3. — Forrás: Roots.io

Αν δεν χρησιμοποιείς Acorn: δύο plugins που αξίζουν στο local

Δεν είναι όλα τα projects πάνω σε Acorn/Bedrock (αν και το μοντέλο “Composer-first WordPress” λύνει πολλά καθημερινά προβλήματα). Αν είσαι σε πιο κλασικό setup, υπάρχουν plugins που βελτιώνουν το debugging experience πέρα από το default WP_DEBUG output.

  • Query Monitor — από τα πιο χρήσιμα εργαλεία για local WordPress: queries, hooks, HTTP calls, errors και πολλά ακόμη.
  • Debug Bar — πιο απλή προσέγγιση, αλλά συχνά αρκετή για βασική ορατότητα σε debug πληροφορία.

Συμπέρασμα

Το WP_DEBUG είναι το minimum σε κάθε σοβαρό local environment, αλλά η default παρουσίασή του δεν είναι φτιαγμένη για γρήγορη διάγνωση. Με Acorn, το WordPress αποκτά πιο σύγχρονο error handling: από τον Symfony exception handler out of the box μέχρι Ignition για εμπειρία πολύ κοντά σε Laravel. Αν πάλι δεν είσαι σε Acorn project, εργαλεία όπως το Query Monitor παραμένουν σχεδόν απαραίτητα για να έχεις καθαρή εικόνα του τι συμβαίνει κάτω από το καπό.

Hannah Turing

Hannah Turing

Προγραμματίστρια WordPress και τεχνική συγγραφέας στο HelloWP. Βοηθώ τους προγραμματιστές να δημιουργούν καλύτερες ιστοσελίδες με σύγχρονα εργαλεία όπως Laravel, Tailwind CSS και το οικοσύστημα WordPress. Παθιασμένη με τον καθαρό κώδικα.

Όλες οι αναρτήσεις

Γίνετε μέλος της κοινότητας HelloWP!

Συζητήστε μαζί μας για WordPress, web development και μοιραστείτε εμπειρίες με άλλους προγραμματιστές.

- μέλη
- σε σύνδεση
Συμμετοχή

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