Arash
Arash
خواندن ۳ دقیقه·۵ سال پیش

چگونه کدهای PHP را با XDebug در محیط VSCode دیباگ کنیم

اگه به عنوان برنامه نویس PHP برای بررسی و دیباگ کدهای خودتون دچار مشکل شدید غالبا" با روش هایی مثل استفاده کردن از echo برای نمایش مقدار یه متغیر یا var_dump گرفتن از Array های PHP مثل SESSION_$ جهت بررسی و دیباگ کدتون استفاده کردید که خیلی هم جالب و راحت نیست و حالا فرض کنید که کدهای شما بسیار پیچیده باشه و حتی باگی که گزارش شده نیاز به بررسی خط به خط کدهای شما رو داشته باشه . یکی از قابلیت هایی که VS Code داره این هستش که میشه به کمک Extension XDebug کدهای خودمون و مثل زبون هایی مثل C#.NET خط به خط دیباگ کنیم و Watcher تعریف کنیم ببینیم فلان متغیر چه مقداری داره و خلاصه خیلی راحتتر از قبل بتونیم دیباگ کنیم.
تو این پست سعی میکنم مرحله به مرحله توضیح بدم که خیلی سریع به این قابلیت دست پیدا کنیم :

اول اینکه فرض میکنم شما PHP رو از قبل نصب کردید ، مثلا من خودم با XAMPP این کارو انجام دادم . حالا باید مطمئن باشید که Extension مربوط به XDebug فعال باشه یا اینکه ممکنه اصلا فایل dll مربوط به این Extension و هم نداشته باشید ، اگه مثل من از XAMPP استفاده می کنید یا Web Server های دیگه کافیه به محل نصب فایل های PHP برید و پوشه Extension هارو پیدا کنید ، بطور مثال برای من در این مسیر قرار داره :

C:\xampp\php\ext\php_xdebug.dll

حالا با توجه به OS شما و یا اینکه از چه Web Server استفاده می کنید ممکنه این مسیر متفاوت باشه ، برای اینکه زیاد سردرگم نشید کافیه یه سری به phpinfo بزنید . همونطوری که تو عکس زیر مشاهده میکنید برای من این Extension فعال هستش


حالا به هر دلیل اگه نیاز به نصبش داشتید به سایتش https://xdebug.org/download.php میتونید برید و آخرین نسخه اون یا نسخه ای که با ورژن PHP شما متناسب هستش و بگیرد و تو همون مسیری بالایی که گفتم قرارش بدید ، بعد از این کار نیازه که فایل php.ini اصلاح بشه ، به این صورت که اولا مشخص کنیم فایل dll. مربوط به اون کجا قرار داره که یکبار بالا گفتم ( حالا واسه شما یه چیز دیگه هست )

[xdebug]
zend_extension="<path to xdebug extension>"
xdebug.remote_enable=1
xdebug.remote_port="<the port for Xdebug to listen to>" (the default port is 9000)

تو تنظیماتش مسیر فایل ، port number و اینکه بصورت ریموت بشه دیباگ کرد و براش تنظیم میکنیم. ترجیحا" این تنظیمات و در انتهای فایل php.ini قرار بدید که با کانفیگ های دیگه تداخل پیدا نکنه. به این نکته توجه کنید که باید Web Server شما ریست بشه که الان تنظیمات جدید و بخونه پس این کار و هم انجام بدید .

خب حالا شما میتونید تو هر محیطی این قابلیت و داشته باشید که خط به خط کدهای خودتون و دیباگ کنید مثلا اگه از PHPStorm استفاده می کنید اونجا هم میتونید با کانفیگ کردنش از این قابلیت استفاده کنید ولی خب من الان میخوام تنظیم کردن VS Code توضیح بدم پس حالا بریم سراغ VS Code ، اول اینکه نیاز هستش یه Extension برای VS Code نصب کنیم که کافیه کلیدهای میانبر Ctrl+Shift+X انتخاب کنید تا فرم جستجوی Extension ها برای شما نمایش داده بشه و PHP رو تایپ کنید :

چیزی که ما باید نصب کنیم PHP Debug هستش . بعدش برای تست یه فایل PHP ایجاد کنید و به سراغ پنل دیباگ برید که از این طریق بتونیم کد و دیباگ کنیم برای این ما باید یه فایل launch.json بسازیم که با انتخاب Add Configuration ابتدا میگیم که عاقا یه کانفیگی برای این داستان میخوایم ایجاد کنیم.

حالا محیطی که باید انتخاب بشه رو باید تعیین کنیم اینجا میشه PHP :

بعدش نیاز هستش مسیری که php.exe در اون وجود داره مشخص بشه این تنظیمات و تو همون فایل launch.json مشخص کنیم در نهایت چیزی به صورت زیر خواهد بود :

در نهایت کافیه هر کجا که لازم هست break point بذارید و به مرورگر برید و برنامه و اجرا کنید ، مشاهده می کنید که VS Code اومده به جایی که شما break point قرار دادید حالا راحت میتونید برنامه رو خط به خط دیباگ کنید :)

phpxdebugvscodeبرنامه نویسی
علاقه مند به علوم کامپیوتر
شاید از این پست‌ها خوشتان بیاید