در مقاله ی قبل با Xdebug و مزایای آن آشنا شدیم و گفتیم که بدون آن باید برای هر خط از کدمان از توابعی مثل ()var_dump
استفاده کنیم تا بتوانیم مقدار متغیرها و روند اجرای برنامه را (آن هم در حدی محدود) درک کنیم. حالا زمان آن رسیده است که Xdebug را در ویرایشگر خود نصب کرده و از آن استفاده کنیم.
برای نصب Xdebug در ویندوز نیازی به انجام عملیات پیچیده نداریم. برای شروع ابتدا یک فایل php بسازید و کد زیر را در آن قرار دهید:
<?php phpinfo(); ?>
اگر این کد را توسط سرور مجازی خود (مثل WAMP یا XAMP یا هر سرور مجازی دیگری) اجرا کنید اطلاعات نسخه ی زبان php شما نمایش داده می شود. تمام اطلاعات نمایش داده شده را کپی کرده و درون Xdebug Wizard Tool قرار دهید. این wizard tool توسط تیم Xdebug طراحی شده است تا بر اساس اطلاعات php شما نسخه ی مناسب Xdebug را برای دانلود پیشنهاد بدهد. در آخر دکمه ی Analyze my phpinfo() output را کلیک کنید تا برنامه اطلاعات شما را بررسی کند:
بعد از بررسی اطلاعات شما، Xdebug نسخه ی مناسب شما را به شما پیشنهاد می دهد:
حالا این نسخه را که یک فایل dll. است دانلود کرده و بر اساس همان دستور العملی که در تصویر بالا مشاهده می کنید، عمل کنید:
xampp/php/ext
انتقال دهید (ما از XAMP استفاده کرده بودیم، نتایج برای شما متفاوت است).یک نمونه از کد اضافه شده به فایل 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;
همچنین اگر دوست دارید از 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 می باشد:
پس از نصب این افزونه VSCode را ری استارت کنید. حالا دوباره دستور ()phpinfo
را درون یکی از فایل های PHP خود اجرا کنید تا ببینید آیا Xdebug نصب شده است یا خیر. اگر نصب شده باشد آن را در اطلاعات نمایش داده شده مشاهده خواهید کرد.
حالا از منوی بالای صفحه روی سربرگ Debug کلیک کرده و گزینه ی Add configuration را انتخاب کنید:
سپس VSCode از شما می پرسد environment مد نظر شما چیست که باید PHP را انتخاب کنید:
با انتخاب PHP، ویرایشگر VSCode یک فایل launch.json ایجاد می کند:
درون این فایل باید حتما runtimeExecutable را مشخص کنید؛ برای این کار باید مسیر فایل php.exe خود را به آن بدهید. این مسیر برای من به شکل زیر است:
"runtimeExecutable": "C:\\xampp\\php\\php.exe"
تصویری از کد اضافه شده:
حالا این فایل را ذخیره کنید.
از این به بعد می توانید یک فایل php را باز کرده و از قسمت سمت چپ گزینه ی Launch currently open script را انتخاب کنید:
پس از انتخاب این گزینه، می توانید اسکریپت فعلی خود را دیباگ کنید. همانطور که در تصویر بالا مشخص است در بالای صفحه کنترل های روند اجرای برنامه را می بینید. این کنترل ها همان کنترل های حرکت breakpoint ها هستند. همچنین در قسمت پایین و سمت چپ برنامه قسمت BREAKPOINTS است که انواع خطاها را به شما نمایش می دهد. همچنین در قسمت Debug Console که در قسمت پایین تصویر مشخص است می توانید گزارش خطا را به تفصیل مطالعه کنید. این قسمت اطلاعات را به طور کامل و با جزئیات دقیق برایتان می نویسد.
حالا می توانیم breakpoint های خودمان را در برنامه ایجاد کنیم و با کنترل های debug خط به خط اجرای کدها را انجام دهیم:
کنترل های اجرای برنامه به شکل زیر هستند:
سوال: من با خطای PHP debugger not installed مواجه شده ام. چه کار کنم؟
پاسخ: ابتدا مسیر C:/php/ext
را چک کنید تا مطمئن شوید نام فایل ها را اشتباه وارد نکرده اید. اگر مشکل باز هم ادامه داشت، یک نسخه ی دیگر از Xdebug (مثل Xdebug 2.4.0rc1) را دانلود کنید (از این صفحه). سپس نام آن را به php_xdebug.dll تغییر دهید. این فایل را در مسیر php/ext قرار دهید و نهایتا وب سرور خود را ری استارت کنید.
به شما تبریک می گویم! از این به بعد می توانید به راحتی فایل های خود را debug کنید.
دیدگاههای شما (1 دیدگاه)
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.