اسفند ۴, ۱۳۹۷ Mostafa بدون دیدگاه

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

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

ایجاد کنترل‌کننده خطا در PHP

ایجاد یک کنترل‌کننده خطا در PHP بسیار ساده است.  می توان یک تابع ساده ایجاد کرد  تا زمانی که خطایی ایجاد شد، فراخوانی شود.

این تابع باید حداقل دو پارامتر داشته باشد. پارامترهای اجباری :

  • error level(اهمیت خطا)
  • error message( پیغام خطا)

اما در کل میتواند ۵ پارامتر را در برگیرد. نوشتن سه پارامتر دیگر به صورت اختیاری است. این پارمترها شامل:

  • line-number (شماره خطی که در آن خطا رخ داده است)
  • the error context (محتوانی خطا)
  • file ( نام فایل)

نحوه نوشتن این تابع بری ایجاد کنترل‌کننده خطا در PHP به صورت زیر است:

توضیحات

پارامترها

این پارامتر اهمیت خطا را نشان میدهد.نوشتن اجباری است و با عدد نمایش میدهند. توضیح آن در جدول زیر آمده است.

error_level

پیغامی درباره خطا است.  نوشتن آن اجباری است

error_message

این پیغام نام متغیر را مشخص میکند و نوشتن آن اختیاری است.

error_file

این پیغام شماره خطی را که خطا در آن رخ داده است نشان میدهد. نوشتن این پارامتر اختیاری است

error_line

این خطا شامل تمام متغیرها و ارزش آن ها است زمانی که خطایی رخ میددهد. نوشتن این پارامتر اختیاری است.

error_context

گزارش اهمیت خطا درPHP

جدول زیر انواع  اهمیت خطا در PHP وتوضیح هر یک  را نشان میدهد.

توضیحات

پارامتر

ارزش

اهمیت خطا کم بوده و مانع اجرای کد نویسی ها نمیشود.

E_WARNING

۲

برنامه ممکن اسن دچار مشکل شده باشد و خطا نمایش دهد اما در روند ادامه برنامه مشکلی ایجاد نمیکند.

E_NOTICE

۸

یک پیغام مهم است و در روند اجرای اسکریپت ها اختلالی ایجاد میکند.

E_USER_ERROR

۲۵۶

یک پیغام ساده است و در روند اجرای اسکریپت ها اختلالی ایجاد نمیکند. مانند E_WARNING خطا هم توسط طراح وب برنامه پیش بینی میشود

E_USER_WARNING

۵۱۲

پیغام خطا یک پیغام معمولی بوده و طراح وب آن را پیش بینی میکند

E_USER_NOTICE

۱۰۲۴

یک خطای بسیار مهم و اسکریپت ها را از کار می اندازد

E_RECOVERABLE_ERROR

۴۰۹۶

همه نوع خطا را شامل میشود.

E_ALL

۸۱۹۱

حال بیاید برای کنترل خطا ها یک تابع را به عنوان مثال تعریف کنیم:

function customError($errno, $errstr)
  {
  echo "<b>Error:</b> [$errno] $errstr<br>";
  echo "Ending Script";
  die();
  }

 

کد نوشته شده فوق به صورت ساده ای کنترل کننده خطا در PHP است. در این تابع متغیر اول errno$ اهمیت خطا  و errstr$ پیغام خطا را ذخیره میکند و سپس به خروجی میفرستد.

 

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

شخصی سازی کنترل کننده در PHP

در مثال زیر از با شخصی سازی کنترل کننده خطا برای تمام خطا ها استفاده میکنیم:

set_error_handler("customError");

 

تا زمانی که از تابع set-error-handel برای شخصی سازی تمام خطا ها استفاده میشود فقط نیاز به یک پارامتر است، البته خودتان میتوانید یک پارامتر دیگر اضافه کنید تا اهمیت خطا را برایتان مشخص کند. به مثال زیر دقت کنید:

<?php
//error handler function
function customError($errno, $errstr)
  {
  echo "<b>Error:</b> [$errno] $errstr";
  }
 
//set error handler
set_error_handler("customError");
 
//trigger error
echo($test);
?>

خطای این مثال تعریف نشدن متغیر test است. در این مثال هیچ تعریفی برای متغیر test نشده است. به همین دلیل خطا خواهد گرفت. خروجی این دستور باید چیزی شبیه به این باشد:

Error: [8] Undefined variable: test

خب آموزش گام به گام php تمام شد، امیدوارم دوستان استفاده کرده باشند در این گام ها مهمترین و کاربردی ترین مباحث php مطرح شد دوستان عزیز مشکلات و سوالات خود را می توانند با بنده مطرح نمایند.


برچسب ها