
نکاتی راجب error_reporting
و set_error_handler
و register_shutdown_function
:
برخلاف تصور خیلی ها که فکر می کنند این دستور خطاها رو "نمایش" میده، این دستور موتور دریافت خطاها هستش. (نه حتی Log کردن خطا)
میشه گفت دستوری برای ثبت تابع customize کننده رفتار خطا هستش (مثلاً برای کادر بندی متون خطا، ایمیل کردن خطا، دادن راه حل به کاربر و...)
- دستور register_shutdown_function
دستوری برای ثبت تابع callback هستش که هنگام متوقف شدن و پایان یافتن پردازش اسکریپت، اون تابع callback اجرا بشه (همچنین زمانی که exit / die صدا زده میشه)
اصول نامگذاری: onScriptShutdown یا onScriptEnd یا onShutdown....
نکته: توسط این دستور میشه خطاهای نوع E_ERROR , E_PARSE , E_CORE_ERROR , E_COMPILE_ERROR رو هم جذب کرد
-
دستور
ini_set('display_errors', TRUE);
دستوری برای نمایش خطا هستش. اگر دستور error_reporting
خاموش باشه این دستور هم کار نمی کنه. اگر دستور error_reporting
روشن باشه ولی این دستور false
باشه، اسکریپت کماکان خطاها رو دریافت می کنه اما نمایش نمیده.
-
دستور
ini_set('log_errors', TRUE);
دستوری برای ذخیره خطا در فایل هستش. اگر دستور error_reporting
خاموش باشه این دستور هم کار نمی کنه. اگر دستور error_reporting
روشن باشه ولی این دستور false
باشه، اسکریپت کماکان خطاها رو دریافت می کنه اما ذخیره نمی کنه.
بنابراین برای محیط development همگی باید فعال و true
باشن و برای محیط production(سرور واقعی یا تحویل به مشتری) همه باید فعال و true
باشن بجز دستور display_errors
!