Monaseb

به دنبال مناسب ترین ها در سایت مناسب

امروز: شنبه, 30 ارديبهشت 1391

شما اینجا هستید: آموزش و پرورش پی اچ پی اشکال زدایی PHP با استفاده از مرورگر Firefox و افزونه FirePHP

اشکال زدایی PHP با استفاده از مرورگر Firefox و افزونه FirePHP

ایمیل چاپ

اشکال زدایی PHP با استفاده از مرورگر Firefox و افزونه FirePHP

معمولا برای اشکال زدایی (debugging) کد سمت سرور دو روش اصلی وجود دارد: می توانید با استفاده از یک محیط توسعه یکپارچه (IDE) که بطور ذاتی دارای برنامه

اشکال زدایی و گزارش گیر (log) است این کار را انجام دهید یا فرایند اشکال زدایی را در یک مرورگر وب انجام دهید.

این مقاله به کمک مرورگر وب فایرفاکس یک روش ساده، و مناسب را برای اشکال زدایی برنامه های وب PHP Ajax به شما معرفی می کند. در این مقاله شما یاد خواهید گرفت که چگونه با استفاده از Firefox، Firebug و FirePHP (با استفاده از کتابخانه های FirePHP در برنامه وب) گزارشات مربوط به برنامه وب را در کنسول FirePHP مشاهده کنید.

مقدمه

هنگامیکه که تکنولوژی Ajax محبوب شد، توسعه دهندگان و برنامه نویسان با یک مشکل جدید مواجه شدند: چطور می شود درخواست ها و پاسخ های Ajax برای یک برنامه کامل وب را بطور موثر اشکال زدایی کرد؟ اگر از یک دیباگر با مدل RESTful که خیلی سخت بود استفاده می شد تحریک یک درخواست معین Ajax کمی مشکل بود. ثبت رخدادها و اطلاعات مربوط به عملیات Ajax باید با استفاده از JSON یا XML انجام می گرفت.

اینجاست که FirePHP به شما کمک می کند، و به شما امکان ثبت پیام های اشکال زدایی در کنسول Firebug را می دهد. FirePHP کد برنامه شما را آشفته و شلوغ نمی کند و برای شکار خطاها نیازی نیست که هر چیزی را تغییر دهید.

FirePHP نه فقط برای اشکال زدایی درخواست های Ajax مناسب است بلکه برای تمامی کد PHP شما مناسب است.

FirePHP چیست؟

FirePHP یک افزونه برای ابزار توسعه برنامه های وب Firebug است. Firebug یک ابزار محبوب و تحت مرورگر که در توسعه برنامه های وب بسیار کاربردی و موثر است. FirePHP رایگان است و براحتی از طریق بخش Mozilla Add-Ons در وب سایت رسمی Mozilla قابل دسترس است. وب سایت رسمی FirePHP به آدرس www.firephp.org است و Christoph Dorn خالق FirePHP است.

برای شروع چه مواردی مورد نیاز است؟

همانطور که حدس می زنید، شما نیازمند سه مورد برای اجرای FirePHP هستید که به شرح ذیل است:

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

دو نکته مهم

بعد از اینکه FirePHP را نصب، و آنرا به برنامه وب خودتان اضافه کردید، شما می توانید به اشکال زدایی و ثبت رخدادها بپردازید. ولی باید به 2 نکته مهم توجه نمائید:

نکته 1

بخاطر اینکه اطلاعات به Firebug در هدرهای HTTP ارسال می شود، شما بایستی بافرینگ خروجی (output buffering) را فعال کنید در غیر اینصورت ممکن است شما با خطای "هدرها در حال حاضر ارسال شده اند" مواجه شوید. شما باید در اولین خط از اسکریپت PHP تان عبارت ()ob_start را جهت دیباگینگ بنویسید.

نکته 2: فراموش نکنید زمانیکه وب سایت شما در دسترس عموم است (زنده) باید FirePHP را غیرفعال کنید

شما باید برای وقتیکه وب سایت در دسترس عموم است FirePHP را غیرفعال نمائید. در غیر اینصورت این خطر وجود خواهد داشت که اطلاعات مهم و حساس وب سایت شما برای افرادی که از Firebug/FirePHP استفاده می کنند آشکار شود (در ادامه این مقاله، درباره این موضوع صحبت خواهد شد).

یک نکته مهم و عمومی برای کاربران Firebug/FirePHP

زمانیکه از Firebug و FirePHP استفاده نمی کنید به شما توصیه می گردد که Firebug و FirePHP را غیرفعال یا معلق کنید در غیر اینصورت هنگام مرور سایت ها و برنامه های وب دیگر (مثلا Gmail) سرعت مرورگر شما بسیار کاهش پیدا می کند.

شروع کار با ثبت رخداد FirePHP

چیزی که باید به آن توجه داشته باشید این است که زبان هایی نظیر PHP (حداقل برای PHP4 و PHP5) که یک زبان "شبه شیء گرا" هستند، شما می توانید FirePHP را بصورت پروسیجر یا شیء گرا مورد استفاده قرار دهید.

من ترجیح می دهم که از تکنیک شیء گرا استفاده کنم و شما را هم تشویق می کنم که این چنین عمل نمائید چرا که یک روش مدرن و محبوب برای ساخت برنامه ها است.

توابع آماده (OO API) به شما این اجازه را می دهد که از شیء Firebug جهت استفاده یک نمونه بگیرید و آنرا استفاده کنید یا اینکه متدهای ثابت آنرا مستقیما استفاده نمائید. بخاطر اینکه استفاده از متدهای ثابت راحت و مختصر است ترجیحا از این شیوه استفاده می کنیم.

نصب شیء OO API

بلوک کد زیر را در اسکریپت تان وارد نمائید تا شیء FirePHP به نام (firephp$) ایجاد شود.

require_once('FirePHPCore/FirePHP.class.PHP');
$firephp = FirePHP::getInstance(true);
$firephp -> [classmethod]

OO API با متدهای ثابت

این یک فرمت برای فراخوانی متدهای ساکن در اسکریپت تان است.

require_once('FirePHPCore/fb.PHP');
FB::[nameofmethod]

حالت Procedural API

در اینجا چگونگی استفاده از Procedural API را مشاهده می کنید:

require_once('FirePHPCore/fb.PHP');
fb($var)
fb($var, 'Label')
fb($var, FirePHP::[nameofmethod])

در اینجا ما به جزئیات درباره مزایای شیوه کدنویسی هر یک از روش های موجود نخواهیم پرداخت، در اینجا فقط انتخاب هایی را که پیش رو دارید را نشان داده ایم.

ثبت پیام ها و اطلاعات در کنسول Firebug

همانطور که گفتیم ثبت پیام ها در صورتی کار خواهد کرد که برنامه شما برای FirePHP تنظیم شده باشد.

مثالی پایه درباره فراخوانی های ثبت گزارش

در این مثال به شما نشان می دهیم که چطور از این ابزار استفاده کنیم.

Fb::log("log message")

این فراخوانی با چاپ یک رشته آنرا به کنسول Firebug می فرستد. در زیر می توانید نتیجه مثال بالا را مشاهده کنید:

Fb::log($array, "dumping an array")

این فراخوانی باعث فرستادن یک آرایه (بدون استفاده از یک حلقه یا فرمان ()print_r در کد اسکریپت) و نمایش محتوای آن به کنسول است. نتیجه مثال بالا به صورت زیر است:

نکته: وقتیکه شما موس را بروی متغیرهای ثبت شده در کنسول Firebug می برید، یک ینجره اطلاعات در صفحه وب نمایش داده می شود که همه عناصر آنرا شامل می شود. این یک ویژگی فوق العاده است.

ثبت پیام از نوع اطلاعات

در اینجا یک مثال پیام از نوع اطلاعات با استفاده از متد info را مشاهده می کنید.

Fb::info("information")

این پیامی است که در کنسول Firebug ثبت شده است:

ثبت پیام از نوع هشدار

در اینجا یک مثال پیام از نوع هشدار با استفاده از متد warn را مشاهده می کنید.

Fb::warn("this is a warning")

این پیامی است که در کنسول Firebug ثبت شده است:

ثبت پیام از نوع خطا

در اینجا یک مثال پیام از نوع خطا با استفاده از متد error را مشاهده می کنید.

Fb::error("error message")

این پیامی است که در کنسول Firebug ثبت شده است:

فعال یا غیرفعال کردن ثبت رخداد FirePHP

وقتیکه وب سایت شما در دسترس عموم است یعنی زنده است، شما می توانید (البته باید) ثبت رخداد FirePHP را غیرفعال کنید. کد زیر را در ابتدای خط اسکریپت خود فراخوانی کنید.

FB::setEnabled(false);

با این روش عالی شما می توانید کد FirePHP که در اسکریپت تان اضافه کرده اید را بدون تغییر باقی بگذارید. همچنین شما می توانید برای روشن یا خاموش کردن FirePHP از 2 کلمه true یا false استفاده کنید.

اگر برنامه شما از یک فایل پیکربندی config file برای نگهداری تنظیمات سراسری استفاده می کند، پیشنهاد می شود که یک گزینه برای فعال یا غیرفعال کردن FirePHP در آن ایجاد کنید.

منبع مقاله: sixrevisions.com

نظرات 

 
0 #1 saeid 1390-08-30 14:29
bravooo
نقل قول
 
 
+1 #2 ali 1390-11-25 16:02
mrccccccccccccc cccc
نقل قول
 
Share |