Ukulungisa iphutha ku-PHP nge-Xdebug

I-Xdebug iyithuluzi elinamandla lokulungisa iphutha le-PHP nethuluzi lokuphrofayili elisisiza ukuthi sihlaziye futhi senze ngokugcwele izinhlelo zokusebenza ze-PHP. Isekela izici ezifana nokulungisa iphutha ngesinyathelo ngasinye, ukukalwa kokusebenza nokulandelela isitaki, okwenza ukuxazulula inkinga kube lula kakhulu futhi kunikeze nemininingwane engcono kukhodi. Ngezansi umhlahlandlela omncane wokusetha ozosetshenziswa ngaphakathi kwe-VSCode.


Faka i-Xdebug

Njengesibonelo, sizofaka i-Xdebug ohlelweni lwamanje lwe-Ubuntu:

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

Ekugcineni, sakha uhla lwemibhalo lwesikhashana ukuze lugcinwe kamuva lokuphrofayili nokulandelela idatha:

mkdir -p /tmp/xdebug

Lungiselela i-Xdebug

Ngemva kokufaka, silungiselela i-Xdebug. Ukuze senze lokhu, siyakuhlela zu/php.ini:

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

Okulandelayo ukucushwa okuyisisekelo okunengqondo:

[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

Ngemva kokwenza lezi zinguquko, siqala kabusha i-PHP-FPM ukuze sisebenzise izinguquko:

sudo service php8.4-fpm restart

Lungiselela i-VSCode

Ukusebenzisa i-Xdebug ku-Visual Studio Code, izandiso ezimbili kanye nokulungiswa kokumisa kuyadingeka. Sifaka lokhu:

Ekugcineni, sakha ifayela lokumisa le -launch.json kufolda ye -.vscode yephrojekthi ezohlaziywa.:

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

Faka Isandiso se-Chrome

Isandiso somsizi we-Xdebug sizibonakalise ngokwaso ngokulungisa iphutha esipheqululini. Lokhu kwenza kube nokwenzeka ukunika amandla noma ukukhubaza i-Xdebug kuphela uma kunesidingo. Ungakwazi futhi ukushintsha kalula imodi yokususa iphutha (isibonelo, ukushintsha ukusuka ekususeni iphutha uye ekwenzeni iphrofayela):

Lungiselela i-WordPress

Uma usebenzisa i-Xdebug endaweni ye-WordPress, kungase kube usizo ukukhubaza ukulungisa iphutha phakathi kwemisebenzi ye-cron lapho iseshini yokususa iphutha isebenza. Lokhu kwenza izicelo zokulungisa iphutha zibe lula. Ukuze wenze lokhu, engeza umugqa olandelayo ku: wp-config.php a:

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

Ngalokhu kumisa sinokusethwa okunamandla okusivumela ukuthi sibhekane nezinkinga zokulungisa iphutha ngokunemba. Ukuthi uthole iziphazamisi ezinenkani noma izinkinga zokusebenza zokulungisa kahle - I-Xdebug ayigcini nje ngokwenza umsebenzi usebenze kahle, kodwa futhi iletha ikhwalithi entsha ekuthuthukisweni ngokulawula nokucaca phezu kwekhodi.

Emuva