Վրիպազերծում PHP-ում Xdebug-ով

Xdebug-ը PHP-ի վրիպազերծման և պրոֆիլավորման հզոր գործիք է, որն օգնում է մեզ վերլուծել և օպտիմիզացնել PHP հավելվածները: Այն աջակցում է այնպիսի գործառույթների, ինչպիսիք են քայլ առ քայլ վրիպազերծումը, կատարողականի չափումը և կույտի հետագծումը, ինչը շատ ավելի հեշտ է դարձնում անսարքությունների վերացումը և ավելի լավ պատկերացումներ տալիս կոդի վերաբերյալ: Ստորև բերված է VSCode-ում օգտագործելու համար տեղադրման փոքր ուղեցույց:


Տեղադրեք Xdebug

Որպես օրինակ, մենք տեղադրում ենք Xdebug-ը ներկայիս Ubuntu համակարգի վրա:

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

Վերջապես, մենք ստեղծում ենք ժամանակավոր գրացուցակ՝ հետագայում պրոֆիլավորման և հետագծման տվյալների պահպանման համար:

mkdir -p /tmp/xdebug

Կարգավորել Xdebug-ը

Տեղադրվելուց հետո մենք կարգավորում ենք Xdebug-ը: Դա անելու համար մենք խմբագրում ենք այն hy/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 Code-ում օգտագործելու համար պահանջվում է երկու ընդլայնում և կազմաձևման ճշգրտում: Մենք տեղադրում ենք սա:

Վերջապես, մենք ստեղծում ենք launch.json կազմաձևման ֆայլը վերլուծվող նախագծի .vscode պանակում::

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

Տեղադրեք Chrome Extension-ը

Xdebug օգնականի ընդլայնումը ապացուցել է իրեն բրաուզերում ճկուն վրիպազերծման համար: Սա հնարավորություն է տալիս ակտիվացնել կամ ապաակտիվացնել Xdebug-ը միայն անհրաժեշտության դեպքում: Կարող եք նաև հեշտությամբ փոխել վրիպազերծման ռեժիմը (օրինակ՝ վրիպազերծումից պրոֆիլավորման անցնելու համար):

Կարգավորեք WordPress-ը

WordPress միջավայրում Xdebug-ն օգտագործելիս կարող է օգտակար լինել անջատել վրիպազերծումը 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-ը ոչ միայն ավելի արդյունավետ է դարձնում աշխատանքը, այլև նոր որակ է բերում զարգացմանը՝ կոդի վերահսկողության և հստակության միջոցով:

Վերադառնալ