ʻO Xdebug kahi mea hana hoʻopau PHP ikaika a me ka hoʻopili ʻana e kōkua iā mākou e nānā a hoʻopaʻa i nā noi PHP. Kākoʻo ia i nā hiʻohiʻona e like me ka hoʻopiʻi ʻana i kēlā me kēia ʻanuʻu, ana hana a me ka hoʻopaʻa ʻana i ka hoʻopaʻa ʻana, e maʻalahi ai ka hoʻoponopono pilikia a hāʻawi i nā ʻike maikaʻi aʻe i ke code. Aia ma lalo kahi alakaʻi hoʻonohonoho liʻiliʻi no ka hoʻohana ʻana i loko o VSCode.
E hoʻouka iā Xdebug
No ka laʻana, hoʻokomo mākou iā Xdebug ma kahi ʻōnaehana Ubuntu o kēia manawa:
sudo apt-get install -y php8.4-xdebug
ʻO ka hope, hana mākou i kahi papa kuhikuhi no ka mālama ʻana i ka ʻikepili a me ka huli ʻana:
mkdir -p /tmp/xdebug
E hoʻonohonoho i ka Xdebug
Ma hope o ka hoʻouka ʻana, hoʻonohonoho mākou iā Xdebug. No ka hana ʻana i kēia, hoʻoponopono mākou haw/php.ini:
vi /etc/php/8.4/fpm/conf.d/custom.ini
ʻO ka mea ma hope he hoʻonohonoho kumu kūpono:
[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
Ma hope o ka hana ʻana i kēia mau hoʻololi, hoʻomaka mākou i ka PHP-FPM e hoʻopili i nā loli:
sudo service php8.4-fpm restart
E hoʻonohonoho i ka VSCode
No ka hoʻohana ʻana iā Xdebug i Visual Studio Code, pono ʻelua mau hoʻonui a me kahi hoʻoponopono hoʻonohonoho. Hoʻokomo mākou i kēia:
- PHP Debug: no ka hana debugging kumu.
- PHP Profile: No ka nānā ʻana i nā faila cachegrind.
ʻO ka hope, hana mākou i ka faila hoʻonohonoho launch.json ma ka waihona .vscode o ka papahana e nānā ʻia:
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"ignore": ["**/vendor/**/*.php"]
}
]
}
E hoʻouka i ka Chrome Extension
Ua hōʻoia ka hoʻonui kōkua Xdebug iā ia iho no ka debugging maʻalahi i ka polokalamu kele pūnaewele. ʻO kēia ka mea hiki ke hiki a hoʻopau paha iā Xdebug inā pono wale nō. Hiki iā ʻoe ke hoʻololi maʻalahi i ke ʻano debug (no ka laʻana, e hoʻololi mai ka debugging i ka profiling):

E hoʻonohonoho i ka WordPress
Ke hoʻohana nei ʻo Xdebug i kahi ʻano WordPress, pono paha e hoʻopau i ka debugging i loko o nā hana cron i ka wā e hoʻoikaika ai kahi kau debugging. He mea maʻalahi kēia i nā noi debugging. No ka hana ʻana i kēia, hoʻohui i kēia laina i: 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);
}
Me kēia hoʻonohonoho, loaʻa iā mākou kahi hoʻonohonoho ikaika e hiki ai iā mākou ke hoʻoponopono i nā pilikia debugging paʻakikī me ka pololei. Inā ʻike ʻoe i nā pōpoki paʻakikī a i ʻole nā pilikia hana hoʻoponopono maikaʻi - ʻaʻole ʻo Xdebug wale nō e hana i ka hana ʻoi aku ka maikaʻi, akā lawe pū kekahi i kahi ʻano hou i ka hoʻomohala ʻana ma o ka mana a me ka maopopo o ke code.