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

مرجع توابع مدیریت خطا و گزارش گیری (error handling & logging) PHP

این توابع ویژه ی مدیریت خطاها و گزارش گیری (logging) در برنامه های PHP بکار گرفته می شوند. توابعی که در مبحث جاری به آن خواهیم پرداخت، به توسعه دهنده امکان می دهند تا قوانین مدیریت خطای اختصاصی خود را تعریف کرده و علاوه بر آن نحوه ی گزارش و لاگ گیری از خطاها را ویرایش کنند. بدین وسیله برنامه نویس می تواند ویژگی های گزارش خطا را بهبود بخشیده و نیازهای اختصاصی خود را برطرف کند.

به عبارت دیگر با استفاده از توابع گزارش گیری که در آموزش جاری با آن ها آشنا می شوید، قادر خواهید بود پیغام هایی را به طور مستقیم به کامپیوترهای دیگر، به یک ایمیل، به گزارشات سیستم (system logs) ارسال نمایید و از این طریق بر مهمترین بخش های اپلیکیشن ها و وب سایت های خود نظارت داشته و از آن ها به صورت گزینشی گزارش گیری نمایید.

تنظیمات زمان اجرای اپلیکیشن/Runtime configuration

عملکرد و رفتار این توابع توسط تنظیمات حاضر در فایل php.ini مدیریت می شود. این تنظیمات در زیر شرح داده شده اند.

اسم پارامتر مربوطهپیش فرضقابل ویرایشویرایش PHP که از این پارامتر استفاده می کند

error_reportingNULLPHP_INI_ALL

display_errors”1″PHP_INI_ALL

display_startup_errors”0″PHP_INI_ALLقابل استفاده از ویرایش 4.3.0 زبان PHP

log_errors”0″PHP_INI_ALL

log_errors_max_len”1024″PHP_INI_ALLقابل استفاده از ویرایش 4.3.0 زبان PHP

ignore_repeated_errors”0″PHP_INI_ALLقابل استفاده از ویرایش 4.3.0 زبان PHP

ignore_repeated_source”0″PHP_INI_ALLقابل استفاده از ویرایش 4.3.0 زبان PHP

report_memleaks”1″PHP_INI_ALLقابل استفاده از ویرایش 4.3.0 زبان PHP

track_errors”0″PHP_INI_ALL

html_errors”1″PHP_INI_ALLPHP_INI_SYSTEM in PHP <= 4.2.3. Available since PHP 4.0.2.
docref_root””PHP_INI_ALLقابل استفاده از ویرایش 4.3.0 زبان PHP

docref_ext””PHP_INI_ALLقابل استفاده از ویرایش 4.3.2 زبان PHP

error_prepend_stringNULLPHP_INI_ALL

error_append_stringNULLPHP_INI_ALL

error_logNULLPHP_INI_ALL

warn_plus_overloadingNULLاین امکان از PHP 4.0.0 به بعد دیگر پشتیبانی نمی شود.

Valueثوابت و شرح آن هاقدیمی ترین ویرایش PHP قابلیت استفاده از ثابت را دارد

1 E_ERROR
مربوط به خطاهای مهلک زمان اجرا می باشد. خطاهایی که امکان ترمیم و بازگشت از آن ها وجود ندارد و به محض رخداد آن ها اجرای اسکریپت PHP متوقف می شود.

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

4 E_PARSE
خطاهای مربوط به تجزیه و تحلیل نحوی (parse errors) که در زمان کامپایل اپلیکیشن رخ می دهند. این دست خطاها را تنها parser تولید می کند.

8 E_NOTICE
هشدارهای زمان اجرا. اسکریپت در زمان اجرا با چیزی مواجه شد که ممکن است خطا در برنامه باشد و یا خطاهایی باشد که به هنگام اجرای عادی اسکریپت اتفاق می افتد.

16 E_CORE_ERROR
خطاهای مهلک در زمان آغاز و اجرای اولیه ی اسکریپت PHP. این ثابت مشابه E_ERROR در هسته ی اصلی PHP می باشد. 4

32 E_CORE_WARNING
خطاهای غیر مهلک و جزئی در زمان اجرای اولیه ی اسکریپت PHP. این ثابت مشابه E_WARNING در هسته ی اصلی PHP می باشد. 4

64 E_COMPILE_ERROR
خطاهای مهلک که در زمان کامپایل اسکریپت اپلیکیشن رخ می دهد. این خطا مشابه E_ERROR ایت که موتور اسکریپت نویسی Zend (Zend Scripting Engine) آن را تولید می کند. 4

128 E_COMPILE_WARNING
خطاهای غیرمهلک زمان کامپایل اپلیکیشن. این خطا مشابه E_WARNING است که موتور اسکریپت نویسی Zend (Zend Scripting Engine) آن را تولید می کند. 4

256 E_USER_ERROR
خطاهای مهلک که توسط کاربر تولید می شوند. این خطا نیز مشابه E_ERROR است که کاربر (توسعه دهنده) آن را با فراخوانی تابع ()trigger_error تنظیم می کند. 4

512 E_USER_WARNING
هشدارهای جزئی که توسط کاربر تولید می شوند. این خطا مشابه E_WARNING است که کاربر (توسعه دهنده) با فراخوانی تابع ()trigger_error تنظیم می کند. 4

1024 E_USER_NOTICE
هشدارهایی که توسط کاربر تولید می شوند. این ثابت کاربردی مشابه E_NOTICE دارد که توسعه دهنده با استفاده از تابع ()trigger_error آن را تنظیم می کند. 4

2048 E_STRICT
هشدارهای زمان اجرا. PHP طی این هشدارها توصیه می کند که تغییراتی را جهت فراهم آوردن قابلیت همکاری و سازگاری کد به آن اضافه نمایید. 5

4096 E_RECOVERABLE_ERROR
خطاهای مهلک قابل مدیریت. این ثابت کاربردی مشابه E_ERROR دارد. توسعه دهنده می تواند با استفاده از تابع اختصاصی خود (به شرح تابع ()set_error_handler مراجعه نمایید) خطاهای از این دست را گرفته و مدیریت نماید. 5

8192 E_ALL
تمامی خطاها و هشدارها به جز خطاهای E_STRICT را شامل می شود. 5

شمارهتابع مربوطه و شرح کاربرد آنقدیمی ترین ویرایش PHP که از تابع پشتیبانی می کند

1 ()debug_backtrace
تابع حاضر یک آرایه ی حاوی اطلاعات دقیق درباره ی خطای رخ داده به عنوان خروجی برمی گرداند. 4

2 ()debug_print_backtrace
اطلاعات دقیق درباره ی خطای رخ داده چاپ می کند. 5

3 ()error_get_last
این تابع اطلاعات آخرین خطای رخ داده در کد را بازمی گرداند. 5

4 ()error_log
خطای مورد نظر را به فایل گزارشات خطاها مستقر در سرور، به ایمیل کاربر یا به مقصد راه دور ارسال می کند. 4

5 ()error_reporting
مشخص می کند کدام خطاها بایستی گزارش شوند. 4

6 ()restore_error_handler
تابعی قبلی مدیریت خطاها در اسکریپت را جهت اداره ی خطاها فراخوانی می کند. 4

7 ()restore_exception_handler
تابع قبلی مدیریت کننده ی خطا (exception handler) را جهت مدیریت خطاهای زمان اجرا فراخوانی می کند. 5

8 ()set_error_handler
یک تابع اختصاصی و تعریف شده توسط کاربر را برای مدیریت خطاها تنظیم و مشخص می کند. 4

9 ()set_exception_handler
یک تابع اختصاصی و تعریف شده توسط کاربر برای مدیریت خطاهای زمان اجرای اپلیکیشن تنظیم می کند. 5

10 ()trigger_error
تابع حاضر برای شناسایی خطا یا فراخوانی تابع مربوطه ی آن بکار می رود. این تابع همچنین یک پیغام اختصاصی مربوط به خطای رخ داد در اسکریپت تولید می کند. 4

11 ()user_error
این تابع کاربردی مشابه trigger_error() دارد. در واقع برای شناسایی یک خطا و صدا زدن تابع مربوطه ی آن بکار می رود. 4

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *