Εντοπισμός σφαλμάτων PHP με Xdebug

Το Xdebug είναι ένα ισχυρό εργαλείο εντοπισμού σφαλμάτων και προφίλ PHP που μας βοηθά να αναλύουμε και να βελτιστοποιούμε τις εφαρμογές PHP. Υποστηρίζει λειτουργίες όπως ο εντοπισμός σφαλμάτων βήμα προς βήμα, η μέτρηση απόδοσης και η ανίχνευση στοίβας, γεγονός που κάνει την αντιμετώπιση προβλημάτων πολύ πιο εύκολη και παρέχει καλύτερες πληροφορίες για τον κώδικα. Παρακάτω είναι ένας μικρός οδηγός εγκατάστασης για χρήση στο VSCode.


Εγκαταστήστε το Xdebug

Για παράδειγμα, εγκαθιστούμε το Xdebug σε ένα τρέχον σύστημα Ubuntu:

sudo apt-get install -y php8.4-xdebug

Τέλος, δημιουργούμε έναν προσωρινό κατάλογο για μεταγενέστερη αποθήκευση δεδομένων προφίλ και ανίχνευσης:

mkdir -p /tmp/xdebug

Διαμόρφωση του Xdebug

Μετά την εγκατάσταση, ρυθμίζουμε το Xdebug. Για να το κάνουμε αυτό, το επεξεργαζόμαστε el/php.ini:

vi /etc/php/8.4/fpm/conf.d/custom.ini

Αυτό που ακολουθεί είναι μια λογική βασική διαμόρφωση:

[xdebug]
; mode (see: https://xdebug.org/docs/all_settings#mode)
;   reasonable default
xdebug.mode=debug,profile
;   disabled
;xdebug.mode=off
;   step debugging
;xdebug.mode=debug
;   performance profiling (be aware of load/space)
;xdebug.mode=profile
;   trace profiling (record args)
;xdebug.mode=trace

; starting mode
;   always (not recommended)
;xdebug.start_with_request=yes
;   only when specific get parameters / cookies are set
;   (?XDEBUG_TRIGGER=1, ?XDEBUG_PROFILE=1, ?XDEBUG_TRACE=1, ?XDEBUG_SESSION=1)
;   this is best in conjunction with Chrome extension "Xdebug helper"
xdebug.start_with_request=trigger
;   folder for analyzing profile dumps
xdebug.output_dir="/tmp/xdebug"
;   not needed, since it is already in /etc/php/8.4/fpm/conf.d/20-xdebug.ini
;zend_extension=xdebug.so

Αφού κάνουμε αυτές τις προσαρμογές, κάνουμε επανεκκίνηση του PHP-FPM για να εφαρμόσουμε τις αλλαγές:

sudo service php8.4-fpm restart

Ρύθμιση παραμέτρων VSCode

Για να χρησιμοποιήσετε το Xdebug στον κώδικα του Visual Studio, απαιτούνται δύο επεκτάσεις και μια προσαρμογή διαμόρφωσης. Εγκαθιστούμε αυτό:

  • PHP Debug: για βασική λειτουργία εντοπισμού σφαλμάτων.
  • Προφίλ PHP: Για την ανάλυση των αρχείων cachegrind.

Τέλος, δημιουργούμε το αρχείο διαμόρφωσης launch.json στον φάκελο .vscode του προς ανάλυση έργου:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "ignore": ["**/vendor/**/*.php"]
        }
    ]
}

Εγκαταστήστε την επέκταση Chrome

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

Διαμόρφωση του WordPress

Όταν χρησιμοποιείτε το Xdebug σε περιβάλλον WordPress, μπορεί να είναι χρήσιμο να απενεργοποιήσετε τον εντοπισμό σφαλμάτων σε εργασίες cron όταν είναι ενεργή μια περίοδος λειτουργίας εντοπισμού σφαλμάτων. Αυτό διευκολύνει τον εντοπισμό σφαλμάτων. Για να το κάνετε αυτό, προσθέστε την ακόλουθη γραμμή στο: wp-config.php ένα:

// disable wp cron on xdebug sessions
if (function_exists('xdebug_is_debugger_active') && xdebug_is_debugger_active()) {
    define('DISABLE_WP_CRON', true);
}

Με αυτήν τη διαμόρφωση έχουμε μια ισχυρή ρύθμιση που μας επιτρέπει να αντιμετωπίζουμε πολύπλοκα προβλήματα εντοπισμού σφαλμάτων με ακρίβεια. Είτε βρίσκετε επίμονα σφάλματα είτε βρίσκετε προβλήματα απόδοσης - το Xdebug όχι μόνο κάνει την εργασία πιο αποτελεσματική, αλλά φέρνει επίσης μια νέα ποιότητα στην ανάπτυξη μέσω του ελέγχου και της σαφήνειας του κώδικα.

Πίσω