وظائف الأخطاء و السجلات في PHP

مقدمة PHP Error

تسمح وظائف Error وLogging بمعالجة وتسجيل الأخطاء.

تسمح وظيفة Error بتحديد قواعد معالجة الأخطاء وتعديل طريقة تسجيل الأخطاء.

تسمح وظائف السجلات للمستخدم بسجلات التطبيق، وإرسال رسائل السجلات إلى بريد إلكتروني أو سجلات النظام أو أجهزة أخرى.

تستخدم وظيفة error لمعالجة الأخطاء وسجلاتها.

تسمح وظيفة error بتحديد قواعد معالجة الأخطاء وتعديل طريقة تسجيل الأخطاء.

تسمح وظائف السجلات بإرسال الرسائل مباشرة إلى أجهزة أخرى أو بريد إلكتروني أو سجلات النظام.

تسمح وظيفة التقرير عن الأخطاء بتحديد نوع ومرتبة الأخطاء.

التثبيت

وظيفة error هي جزء من نواة PHP. يمكن استخدام هذه الوظائف دون الحاجة إلى تثبيت.

تكوين التشغيل

سلوك وظيفة error يتأثر بالإعدادات الموجودة في php.ini.

خيارات التكوين الخاصة بالأخطاء والسجلات هي كما يلي:

الاسم القيمة الافتراضية الوصف النطاق القابل للتعديل
error_reporting NULL ضبط مستوى التقرير عن الأخطاء (رقم أو كيان معين) PHP_INI_ALL
display_errors "1"

تحديد ما إذا كان يجب عرض الأخطاء كأخراج أو إخفاءها من المستخدم.

النصيحة:لا يجب استخدام هذه الميزة في النظام الإنتاج (يدعم التطوير فقط).

PHP_INI_ALL
display_startup_errors "0"

حتى إذا كان display_errors مفعلاً، فإن أخطاء عملية بدء PHP لن تُعرض.

التعليق: يُنصح بشدة بإغلاق display_startup_errors باستثناء أغراض الت调试.

PHP_INI_ALL
log_errors "0"

ضبط ما إذا كان يجب تسجيل أخطاء تنفيذ السكربت في سجل الأخطاء على الخادم أو error_log.

التعليق: هذا هو خيار تكوين معين مرتبط بالخادم.

التعليق: يُنصح بشدة باستخدام سجلات الأخطاء لتسجيل الأخطاء التي تظهر على موقع الويب في نظام التشغيل الإنتاج.

PHP_INI_ALL
log_errors_max_len "1024"

ضبط الحجم الأقصى للبيانات في log_errors. سيتم إضافة معلومات عن مصدر الخطأ إلى error_log.

القيمة الافتراضية هي 1024، إذا تم تعيينها على 0 فإن الطول غير محدود.

ضبط الطول لهذا الخيار يؤثر على الأخطاء المسجلة، الأخطاء التي تظهر، وأيضاً $php_errormsg.

PHP_INI_ALL
ignore_repeated_errors "0"

تحديد ما إذا كان يجب تسجيل الأخطاء المكررة.

يجب أن تظهر الأخطاء المكررة في نفس الملف في نفس سطر الكود، ما لم يتم تعيين ignore_repeated_source إلى true.

PHP_INI_ALL
ignore_repeated_source "0"

تحديد ما إذا كان يجب تسجيل الأخطاء المكررة.

عندما يكون هذا الإعداد مفعلاً، فإن المعلومات المكررة لن يتم تسجيلها بأنها قد تم إنتاجها من ملف أو سطر مصدر مختلف.

PHP_INI_ALL
report_memleaks "1" إذا تم تعيين هذا المعامل إلى On (القيمة المبدئية)، فإنه سيتم عرض تقارير تسربات الذاكرة التي اكتشفها مدير ذاكرة Zend. PHP_INI_ALL
track_errors "0" إذا تم تفعيله، فإن الأخطاء الأخيرة ستكون دائمًا موجودة في المتغير $php_errormsg. PHP_INI_ALL
html_errors "1" إغلاق علامات HTML في معلومات الأخطاء.
  • PHP_INI_ALL
  • PHP_INI_SYSTEM في PHP <= 4.2.3.
xmlrpc_errors "0" إذا تم تفعيله، فإنه سيقوم بإغلاق التقرير العادي للأخطاء ويقوم بتنسيق الأخطاء على شكل معلومات الأخطاء XML-RPC. PHP_INI_SYSTEM
xmlrpc_error_number "0" يستخدم كقيمة للعنصر faultCode في XML-RPC. PHP_INI_ALL
docref_root "" (متاح منذ PHP 4.3) PHP_INI_ALL
docref_ext "" (متاح منذ PHP 4.3.2) PHP_INI_ALL
error_prepend_string NULL تحديد النص الذي سيتم إرجاعه قبل معلومات الخطأ. PHP_INI_ALL
error_append_string NULL تحديد النص الذي سيتم إرجاعه بعد معلومات الخطأ. PHP_INI_ALL
error_log NULL

تحديد ملف حيث سيتم تسجيل أخطاء السكربت. يجب أن يكون الملف قابل للكتابة من قبل مستخدم خادم الويب.

إذا تم استخدام القيمة الخاصة syslog، فإنه سيتم إرسال معلومات الأخطاء إلى سجلات النظام.

PHP_INI_ALL

وظائف الأخطاء و السجلات في PHP

الوظيفة الوصف
debug_backtrace() إنشاء backtrace.
debug_print_backtrace() طباعة backtrace.
error_get_last() إرجاع الأخطاء التي حدثت أخيرًا.
error_log() إرسال رسائل الأخطاء إلى سجلات الخدمة على الخادم أو ملف أو هدف بعيد.
error_reporting() تحديد ما إذا كان يجب التقرير عن خطأ.
restore_error_handler() استعادة معالج الأخطاء السابق.
restore_exception_handler() استعادة معالج الاستثناءات السابق.
set_error_handler() تعيين دالة معالجة الأخطاء المخصصة.
set_exception_handler() تعيين دالة معالجة الاستثناءات المخصصة.
trigger_error() إنشاء رسائل أخطاء مستوى المستخدم.
user_error() اسم مجرد للـ trigger_error().

المعرفات المسبقة الإعداد للخطأ و日记 في PHP 5

القيم المعرفات الوصف
1 E_ERROR الأخطاء الفatale عند تشغيل الوقت. أخطاء لا يمكن إصلاحها. تتوقف عن تنفيذ السكريبت.
2 E_WARNING الأخطاء غير الفatale عند تشغيل الوقت. لا تتوقف عن تنفيذ السكريبت.
4 E_PARSE أخطاء تحليل اللغة البرمجية عند التجميع. تنتج الأخطاء التحليلية فقط من التحليل.
8 E_NOTICE الإخطارات عند تشغيل الوقت. تعبر عن مواقف قد تظهر كأخطاء، ولكن قد تكون هناك إخطارات مشابهة في سكريبت يعمل بشكل طبيعي.
16 E_CORE_ERROR أخطاء فatale عند إعداد PHP. تشبه E_ERROR، ولكن يتم إنشاؤها بواسطة نواة محرك PHP.
32 E_CORE_WARNING تحذيرات إعداد PHP (أخطاء غير فatale). تشبه E_WARNING، ولكن يتم إنشاؤها بواسطة نواة محرك PHP.
64 E_COMPILE_ERROR أخطاء فatale وقت التجميع. تشبه E_ERROR، ولكن يتم إنشاؤها بواسطة محرك Zend لسكريبت.
128 E_COMPILE_WARNING تحذيرات وقت التجميع (أخطاء غير فatale). تشبه E_WARNING، ولكن يتم إنشاؤها بواسطة محرك Zend لسكريبت.
256 E_USER_ERROR المعلومات الخطأ التي يتم إنشاؤها من قبل المستخدم. تشبه E_ERROR، ولكن يتم إنشاؤها بواسطة المستخدم نفسه باستخدام دالة PHP trigger_error().
512 E_USER_WARNING المعلومات التحذيرية التي يتم إنشاؤها من قبل المستخدم. تشبه E_WARNING، ولكن يتم إنشاؤها بواسطة المستخدم نفسه باستخدام دالة PHP trigger_error().
1024 E_USER_NOTICE المعلومات الإخطارية التي يتم إنشاؤها من قبل المستخدم. تشبه E_NOTICE، ولكن يتم إنشاؤها بواسطة المستخدم نفسه باستخدام دالة PHP trigger_error().
2048 E_STRICT تم تمكين الإصدار الموصى به لتحرير الكود في PHP لضمان أفضل التشغيل المتبادل والتوافق الأمامي.
4096 E_RECOVERABLE_ERROR Catchable fatal error. It indicates that a potentially very dangerous error has occurred, but it has not caused the PHP engine to be in an unstable state. If the error is not caught by the user-defined handler (see set_error_handler()), it will become an E_ERROR and the script will terminate.
8192 E_DEPRECATED Run-time notifications. When enabled, it will issue warnings for code that may not work correctly in future versions.
16384 E_USER_DEPRECATED User-generated warning messages. Similar to E_DEPRECATED, but they are generated by the user themselves in the code using the PHP function trigger_error().
32767 E_ALL E_STRICT All error and warning messages except those that are strictly necessary.