ʻO ka hoʻopau ʻana i ka PHP me Xdebug

ʻ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:

ʻ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.

Hope