دیباگ کردن در پی اچ پی سخت تر از سایر زبان ها است

شنبه 16 فروردین 1399

دیباگ کردن در پی اچ پی می تواند سختی های زیادی را برای شما داشته باشد، ما در این مطلب درباره مشکلات دیباگ کردن در پی اچ پی صحبت خواهیم کرد.

 دیباگ کردن در پی اچ پی سخت تر از سایر زبان ها است

دیباگ کردن در پی اچ پی گاهی اوقات می تواند بسیار سخت تر از دیباگ کردن اپلیکیشن های مختلف در زبان های برنامه نویسی دیگر باشد. دلایل بسیار زیادی وجود دارد که باعث می شود تا دیباگ کردن در پی اچ پی سخت تر باشد. ما در این مطلب قصد داریم کمی بیشتر درباره سخت بودن دیباگ کردن در پی اچ پی صحبت کنیم و اطلاعاتی را درباره این موضوع در اختیار شما قرار دهیم. بنابراین ما را در این مطلب همراهی کنید.

دلیل اول برای سخت بودن دیباگ کردن در پی اچ پی

دلیل اول برای سخت بودن دیباگ کردن در پی اچ پی این است که یک اپلیکیشن که به زبان پی اچ پی نوشته شده است به ندرت تنها شامل کدهای پی اچ پی است.( توجه داشته باشید که ما در اینجا درباره استفاده معمول از زبان برنامه نویسی پی اچ پی در اپلیکیشن تحت وب صحبت می کنیم. این موارد در اپلیکیشن های پی اچ پی که تنها شامل یک اسکریپت شامل چند خط کد هستند ظاهر نمی شود). این اپلیکیشن ها در واقع ترکیبی از پی اچ پی، اچ تی ام ال، سی اس اس، جاوا اسکریپت و MySQL هستند. هر یک از اجزای برنامه خارج از context خود اجرا می شود و در واقع زبان های مختلف دارای ناحیه اجرای متفاوتی نیز می باشند. HTML و جاوا اسکریپت در مرورگر اجرا می شوند، php در سرور مربوط به اپلیکیشن تحت وب اجرا می شود و MySQL نیز در سرور مربوط به پایگاه داده اجرا می شود.

 دیباگ کردن در پی اچ پی

دلیل دوم برای سخت بودن دیباگ کردن در پی اچ پی

دومین دلیل برای سخت بودن دیباگ کردن در پی اچ پی این است که اپلیکیشن هایی  که به این زبان نوشته می شوند دارای یک روند اجرای خطی و مداوم نیستند. در واقع اجرای این اپلیکیشن ها متشکل از یه سری از درخواست ها و پاسخ های HTTP می باشد. هر کدام از این درخواست ها و یا پاسخ ها مستقل از سایرین است. این موضوع در حالی است که بسیاری از کاربران گمان می کنند که اپلیکیشن ها به صورت یکپارچه اجرا می شوند. توجه داشته باشید که این موضوع به دلیل وجود کوکی ها و برخی از اقداماتی است که در بک گراند انجام می شود. وجود چنین مواردی باعث می شود تا دیباگ کردن در پی اچ پی بسیار سخت باشد.

 دیباگ کردن در پی اچ پی

نتیجه گیری از دلایل بخش های قبلی

نتیجه اصلی از بخش های قبلی این است که اگر شما یک session دیباگ کردن در پی اچ پی را بر روی فایل X.PHP آغاز کنید زمانی که این فایل پاسخ HTTP خود را ارسال می کند این کد پی اچ پی کامل شده است. درخواست HTTP بعدی در session مربوط به همین کاربر ممکن است با اجرای فایل Y.PHP درگیر شود. در نتیجه این موضوع یک session مربوط به کاربر به صورت موثری از طریق چندین session دیباگ ارسال شود.

توسعه دهندگان برای حل مشکل چند زبانی از مجموعه ای از ابزارهای دیباگ استفاده کنند که هر یک از آنها دارای دامنه خاص خود می باشند. یک افزونه دیباگ کردن در پی اچ پی عملیات دیباگ کردن کدهای پی اچ پی را برای شما مدیریت می کند. یکی از محبوب ترین افزونه هایی که در این زمینه وجود دارد Xdebug است که یک دیباگ کننده رایگان برای کدهای پی اچ پی است که یک لینک کتابخانه داینامیک بر روی ویندوز و یا به عنوان یک کتابخانه به اشتراک گذاشته شده بر روی لینوکس نصب می شود. Xdebug می تواند به صورت مجازی بر روی هر وب سروری استفاده شود چرا که به این افزونه به جای وب سرور به PHP runtime متصل می شود.

 دیباگ کردن در پی اچ پی

توضیحات بیشتر درباره افزونه Xdebug

افزونه Xdebug تمامی قابلیت های پایه ای برای دیباگ کردن را برای شما فراهم می کند که از جمله آنها می توان به breakpoint ها، stack trace ها، variable watches و ... اشاره کرد. این ابزار همچنین توابع خاصی را برای شما فراهم می کند که می توانید با استفاده از آن برنامه خود را اجرا کنید. به عنوان مثال شما می توانید میزان مموری یک اپلیکیشن که با زبان php نوشته شده است را نمایش دهید که برای این کار تنها کافی است که از تابع xdebug_memory_usage استفاده کنید. در نهایت این ابزار می تواند تنظیم شود تا یک HTTP session را مسیریابی کند. اضافه کردن یک پارامتر XDEBUG_SESSION_START برای URL یک HTTP request می تواند این ابزار را قادر سازد تا یک کوکی را به مرورگر منتقل کند که این موضوع نیز باعث می شود تا debug session بتواند با درخواست های مختلف HTTP کار کند.

 دیباگ کردن در پی اچ پی

دیباگ کردن HTML و جاوا اسکریپت

دیباگ کردن HTML و جاوا اسکریپت می تواند با استفاده از افزونه فوق العاده Firebug plug-in که برای مرورگر فایرفاکس می باشد مدیریت شود. از آنجایی که این افزونه در مرورگر اجرا می شود می تواند به طور مستقل از IDE پی اچ پی اجرا شود، البته که توجه داشته باشید برخی از IDE ها با این افزونه ادغام شده اند. NetBeans IDE افزونه دیباگ خاص خود را فراهم کرده است که به صورت خودکار زمانی که debug session که شامل جاوا اسکریپت است شروع می شود بر روی فایرفاکس نصب می شود.

 دیباگ کردن در پی اچ پی

نکات پایانی درباره دیباگ کردن در پی اچ پی

دیباگ کردن SQL با دیباگ کردن زبان های رویه ای کمی متفاوت است. تست کردن درستی یک کوئری گاهی اوقات می تواند به سادگی با ساخت و اجرای کوئری در مدل ad hoc انجام شود( یعنی این که شما می توانید کوئری خود را در کنسول مدیریت کننده SQL تایپ کنید و نتیجه را بررسی کنید). بسیاری از IDE های پی اچ پی ابزارهای پایگاه داده را فراهم می کنند که برای این کار می توانید از آنها استفاده کنید. به عنوان مثال Database Development Toolkit در اکلیپس دارای امکان اجرای کوئری به صورت ad hoc می باشد که می توانید به شکل مناسبی از آن استفاده کنید.

هر کدام از IDE های پی اچ پی را که انتخاب کنید باید قابلیت های دیباگ کردن در پی اچ پی را در آنها بررسی کنید تا متناسب با هدف خود یکی از آنها را انتخاب کنید. اگر اپلیکیشن شما به میزان کمی به جاوا اسکریپت وابسته است بنابراین نیاز شما به دیباگ کردن در جاوا اسکریپت کمینه می شود. در بسیاری از موارد شما بدون نیاز به ابزارهای این چنینی نمی توانید نیاز خود به دیباگ در پی اچ پی و به ویژه PHP debugging session را برطرف کنید. 

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • PHP
  • 2k بازدید
  • 1 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید