آموزش نصب و استفاده از Xdebug

01 آبان 1398
آشنایی با Xdebug (نصب و راه اندازی)

آموزش نصب و استفاده از Xdebug

در مقاله ی قبل با Xdebug و مزایای آن آشنا شدیم و گفتیم که بدون آن باید برای هر خط از کدمان از توابعی مثل ()var_dump استفاده کنیم تا بتوانیم مقدار متغیرها و روند اجرای برنامه را (آن هم در حدی محدود) درک کنیم. حالا زمان آن رسیده است که Xdebug را در ویرایشگر خود نصب کرده و از آن استفاده کنیم.

نصب Xdebug در ویندوز، مک و لینوکس

برای نصب Xdebug در ویندوز نیازی به انجام عملیات پیچیده نداریم. برای شروع ابتدا یک فایل php بسازید و کد زیر را در آن قرار دهید:

<?php

phpinfo();

?>

اگر این کد را توسط سرور مجازی خود (مثل WAMP یا XAMP یا هر سرور مجازی دیگری) اجرا کنید اطلاعات نسخه ی زبان php شما نمایش داده می شود. تمام اطلاعات نمایش داده شده را کپی کرده و درون Xdebug Wizard Tool قرار دهید. این wizard tool توسط تیم Xdebug طراحی شده است تا بر اساس اطلاعات php شما نسخه ی مناسب Xdebug را برای دانلود پیشنهاد بدهد. در آخر دکمه ی Analyze my phpinfo() output را کلیک کنید تا برنامه اطلاعات شما را بررسی کند:

صفحه ی Xdebug Wizard Tool
صفحه ی Xdebug Wizard Tool

بعد از بررسی اطلاعات شما، Xdebug نسخه ی مناسب شما را به شما پیشنهاد می دهد:

پیشنهاد نسخه ی مناسب به همراه دستور العمل استفاده از آن توسط Xdebug
پیشنهاد نسخه ی مناسب به همراه دستور العمل استفاده از آن توسط Xdebug

حالا این نسخه را که یک فایل dll. است دانلود کرده و بر اساس همان دستور العملی که در تصویر بالا مشاهده می کنید، عمل کنید:

  • فایل dll را دانلود نمایید.
  • فایل دانلود شده را به آدرس xampp/php/ext انتقال دهید (ما از XAMP استفاده کرده بودیم، نتایج برای شما متفاوت است).
  • به فایل ini بروید و کد زیر را به آن اضافه کنید (کدی که برنامه به شما می دهد - مانند تصویر بالا).
  • وب سرور یا سرور مجازی خود را ری استارت کنید.

یک نمونه از کد اضافه شده به فایل php.ini:

zend_extension="php_xdebug-2.6.0-7.0-vc14.dll"
xdebug.remote_enable = 1
xdebug.remote_autostart=on

این کد به انتهای فایل php.ini اضافه می شود. به جای zend_extention باید نام فایل دانلود شده ی خودتان را قرار دهید. همچنین در برخی از موارد دیده شده است بدون دو دستور بعدی (xdebug.remote_enable و xdebug.remote_autostart) افزونه ی Xdebug اجرا نشده است بنابراین بهتر است این دو مورد را نیز به دستور قبل اضافه کنید.

کاربران سیستم های مک (شرکت اپل) می توانند از افزونه ی pecl برای نصب Xdebug استفاده کنند:

pecl install xdebug

کاربران لینوکس (مانند Debian) نیز می توانند از sudo برای نصب Xdebug استفاده کنند:

sudo apt install php-xdebug;

البته پس از آن باید به مسیر etc/php/7.0/mods-available/xdebug.ini بروند و کدهای زیر را به آن اضافه کنند تا Xdebug فعال شود:

xdebug.profiler_enable_trigger = 1

xdebug.profiler_enable = 0

xdebug.remote_enable = 1

xdebug.profiler_output_dir = "/tmp"

حالا باید سرور Apache2 را ریستارت کنید:

sudo service apache2 restart;

نصب Xdebug با استفاده از Git

همچنین اگر دوست دارید از Git برای نصب Xdebug استفاده کنید، می توانید کد زیر را اجرا کنید:

git clone git://github.com/xdebug/xdebug.git

سپس فایل php.ini را باز کرده و کد زیر را به آن اضافه کنید:

zend_extension="xdebug.so"

حالا اگر دستور php -v را اجرا کنید، علاوه بر نسخه ی php، نسخه ی Xdebug نصب شده نیز به شما نمایش داده می شود:

$ php -v

PHP 7.2.0RC6 (cli) (built: Nov 23 2017 10:30:56) ( NTS DEBUG )

Copyright (c) 1997-2017 The PHP Group

Zend Engine v3.2.0-dev, Copyright (c) 1998-2017 Zend Technologies

 with Xdebug v2.6.0-dev, Copyright (c) 2002-2017, by Derick Rethans

نصب Xdebug در ویرایشگر VSCode

اگر از IDE هایی مثل PHPStorm و zend studio یا ویرایشگرهایی مثل VSCode استفاده می کنید بهترین روش کار با Xdebug این است که آن را درون همین ویرایشگرها نصب نمایید. پس از نصب Xdebug در ویندوز به VSCode بروید و از قسمت افزونه ها عبارت php debug را جست و جو نمایید. این افزونه توسط آقای Felix Becker توسعه داده شده است و همان Xdebug می باشد:

افزونه ی php debug در VSCode
افزونه ی php debug در VSCode

پس از نصب این افزونه VSCode را ری استارت کنید. حالا دوباره دستور ()phpinfo را درون یکی از فایل های PHP خود اجرا کنید تا ببینید آیا Xdebug نصب شده است یا خیر. اگر نصب شده باشد آن را در اطلاعات نمایش داده شده مشاهده خواهید کرد.

حالا از منوی بالای صفحه روی سربرگ Debug کلیک کرده و گزینه ی Add configuration را انتخاب کنید:

انتخاب گزینه ی Add Configuration از منوی بالا
انتخاب گزینه ی Add Configuration از منوی بالا

سپس VSCode از شما می پرسد environment مد نظر شما چیست که باید PHP را انتخاب کنید:

انتخاب environment برای Debug کردن پروژه
انتخاب environment برای Debug کردن پروژه

با انتخاب PHP، ویرایشگر VSCode یک فایل launch.json ایجاد می کند:

نمایی از فایل launch.json اضافه شده
نمایی از فایل launch.json اضافه شده

درون این فایل باید حتما runtimeExecutable  را مشخص کنید؛ برای این کار باید مسیر فایل php.exe خود را به آن بدهید. این مسیر برای من به شکل زیر است:

"runtimeExecutable": "C:\\xampp\\php\\php.exe"

تصویری از کد اضافه شده:

اضافه کردن runtimeExecutable مرحله ای ضروری است.
اضافه کردن runtimeExecutable مرحله ای ضروری است.

حالا این فایل را ذخیره کنید.

از این به بعد می توانید یک فایل php را باز کرده و از قسمت سمت چپ گزینه ی Launch currently open script را انتخاب کنید:

انتخاب گزینه ی Launch currently open script برای شروع عملیات دیباگ
انتخاب گزینه ی Launch currently open script برای شروع عملیات دیباگ

پس از انتخاب این گزینه، می توانید اسکریپت فعلی خود را دیباگ کنید. همانطور که در تصویر بالا مشخص است در بالای صفحه کنترل های روند اجرای برنامه را می بینید. این کنترل ها همان کنترل های حرکت breakpoint ها هستند. همچنین در قسمت پایین و سمت چپ برنامه قسمت BREAKPOINTS است که انواع خطاها را به شما نمایش می دهد. همچنین در قسمت Debug Console که در قسمت پایین تصویر مشخص است می توانید گزارش خطا را به تفصیل مطالعه کنید. این قسمت اطلاعات را به طور کامل و با جزئیات دقیق برایتان می نویسد.

حالا می توانیم breakpoint های خودمان را در برنامه ایجاد کنیم و با کنترل های debug خط به خط اجرای کدها را انجام دهیم:

ایجاد breakpoint های دلخواه در کد (دایره های قرمز رنگ)
ایجاد breakpoint های دلخواه در کد (دایره های قرمز رنگ)

کنترل های اجرای برنامه به شکل زیر هستند:

انتخاب گزینه های کنترل breakpoint ها
انتخاب گزینه های کنترل breakpoint ها
  • کلید f5 به معنی ادامه ی اجرای برنامه است (رفتن به خط یا دستور بعد)
  • کلید f10 به معنی رد شدن از قسمت خاصی است (مثلا اگر می خواهید از یک حلقه عبور کنید)
  • کلید f11 به معنی وارد شدن به قسمت خاصی از کدها است.
  • کلید های shift + f11 به معنی خارج شدن از قسمت خاصی از کدها است.

سوال: من با خطای PHP debugger not installed مواجه شده ام. چه کار کنم؟

پاسخ: ابتدا مسیر C:/php/ext را چک کنید تا مطمئن شوید نام فایل ها را اشتباه وارد نکرده اید. اگر مشکل باز هم ادامه داشت، یک نسخه ی دیگر از Xdebug (مثل Xdebug 2.4.0rc1) را دانلود کنید (از این صفحه). سپس نام آن را به php_xdebug.dll تغییر دهید. این فایل را در مسیر php/ext قرار دهید و نهایتا وب سرور خود را ری استارت کنید.

به شما تبریک می گویم! از این به بعد می توانید به راحتی فایل های خود را debug کنید.

نویسنده شوید

دیدگاه‌های شما (1 دیدگاه)

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

امیر
05 خرداد 1399
خیلی عالی بود.

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.