كيفية تصحيح الأخطاء (Debugging) في PHP

تمت الكتابة بواسطة: عبد الحكيم

تارخ آخر تحديث: 14 يناير 2025

محتوى المقال

كيفية تصحيح الأخطاء (Debugging) في PHP

تصحيح الأخطاء (Debugging) هو جزء أساسي من عملية تطوير البرمجيات. يساعدك على اكتشاف وإصلاح الأخطاء في كودك لضمان أن التطبيق يعمل كما هو متوقع. في PHP، هناك مجموعة من الأدوات والتقنيات التي يمكن استخدامها لتصحيح الأخطاء بكفاءة. في هذا المقال، سنتعلم كيفية تصحيح الأخطاء في PHP باستخدام عدة طرق وأدوات لتحسين جودة الكود وضمان تشغيله بشكل صحيح.

1. تمكين عرض الأخطاء في PHP

أول خطوة في تصحيح الأخطاء هي التأكد من عرض رسائل الخطأ في PHP. بشكل افتراضي، قد يتم تعطيل عرض الأخطاء في بيئة الإنتاج (Production)، ولكن في بيئة التطوير (Development) من المهم تمكين عرض الأخطاء لتتمكن من رؤية المشاكل مباشرة.

1.1 تمكين عرض الأخطاء باستخدام ملف php.ini

يمكنك تمكين عرض الأخطاء عن طريق تعديل إعدادات php.ini كما يلي:

display_errors = On
display_startup_errors = On
error_reporting = E_ALL

في هذا الإعداد:

  • display_errors = On: يعرض رسائل الخطأ.
  • display_startup_errors = On: يعرض الأخطاء التي تحدث أثناء بدء تشغيل PHP.
  • error_reporting = E_ALL: يعرض جميع أنواع الأخطاء (التحذيرات، الإشعارات، والأخطاء الفادحة).

1.2 تمكين عرض الأخطاء باستخدام كود PHP

إذا لم يكن بإمكانك الوصول إلى php.ini، يمكنك تمكين عرض الأخطاء باستخدام كود PHP مباشرة في بداية ملفك:

<?php
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
?>

هذا الكود يقوم بتمكين عرض الأخطاء مباشرة في التطبيق الخاص بك.

2. استخدام دوال تصحيح الأخطاء في PHP

PHP توفر مجموعة من الدوال التي تساعدك في تصحيح الأخطاء من خلال عرض محتويات المتغيرات أو الرسائل الخاصة بالخطأ. من أهم هذه الدوال var_dump()، print_r()، وdebug_backtrace().

2.1 استخدام var_dump()

دالة var_dump() تعرض تفاصيل حول المتغير بما في ذلك نوعه وقيمته. هذه الدالة مفيدة جدًا لفحص المتغيرات ومعرفة محتوياتها.

<?php
$variable = array('key' => 'value');
var_dump($variable);
?>

سيقوم هذا الكود بعرض محتويات المتغير $variable بما في ذلك نوع البيانات التي يحتوي عليها.

2.2 استخدام print_r()

دالة print_r() تعرض محتويات المتغير بشكل يسهل قراءته، خاصة عند التعامل مع المصفوفات أو الكائنات.

<?php
$variable = array('key' => 'value');
print_r($variable);
?>

سيقوم هذا الكود بعرض محتويات المتغير $variable بطريقة مفهومة وسهلة القراءة.

2.3 استخدام debug_backtrace()

دالة debug_backtrace() تُستخدم لتتبع مسار التنفيذ وتحديد مكان استدعاء الدوال أو المواقع التي قد تكون سببًا في حدوث الخطأ.

<?php
function test_function() {
    debug_backtrace();
}

test_function();
?>

سيعرض هذا الكود قائمة بالدوال التي تم استدعاؤها والمسار الذي اتبعته.

3. استخدام سجل الأخطاء (Error Log)

عندما تعمل على تطبيق ويب، من الأفضل تسجيل الأخطاء بدلاً من عرضها للمستخدمين النهائيين. يمكنك ضبط PHP لتسجيل الأخطاء في ملف معين باستخدام إعدادات php.ini أو باستخدام كود PHP.

3.1 ضبط سجل الأخطاء في php.ini

لتمكين تسجيل الأخطاء في ملف، يمكنك تعديل إعدادات php.ini كما يلي:

log_errors = On
error_log = /path/to/your/error.log

في هذا الإعداد:

  • log_errors = On: يُمكّن تسجيل الأخطاء.
  • error_log: يحدد مسار ملف السجل الذي سيتم تخزين الأخطاء فيه.

3.2 تسجيل الأخطاء باستخدام كود PHP

يمكنك تسجيل الأخطاء مباشرة في كود PHP باستخدام دالة error_log().

<?php
error_log('This is an error message!', 3, '/path/to/your/error.log');
?>

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

4. استخدام أدوات التصحيح الخارجية

إلى جانب الأدوات المدمجة في PHP، هناك أدوات خارجية قوية تساعد في تصحيح الأخطاء بشكل أكثر فاعلية. من بين هذه الأدوات Xdebug و PHPStorm.

4.1 استخدام Xdebug

Xdebug هو امتداد PHP يوفر أدوات تصحيح متقدمة، بما في ذلك تتبع الكود، وتحليل الأداء، وتصحيح الأخطاء عن بعد.

لتثبيت Xdebug، يمكنك استخدام مدير الحزم المناسب لنظام التشغيل الخاص بك أو تثبيته يدويًا.

4.2 تكامل Xdebug مع IDE مثل PHPStorm

يمكنك دمج Xdebug مع IDE مثل PHPStorm لتسهيل عملية تصحيح الأخطاء. يتيح لك ذلك تشغيل تطبيقك في وضع التصحيح (debug mode) والتوقف عند نقاط توقف محددة لفحص الحالة الداخلية للتطبيق.

4.3 مثال على استخدام Xdebug

بعد تثبيت Xdebug وتكوينه، يمكنك بدء جلسة تصحيح أخطاء مع PHPStorm وتجربة نقاط التوقف لمراقبة متغيراتك ومسار التنفيذ.

5. التعامل مع الاستثناءات (Exceptions)

الاستثناءات هي طريقة أخرى للتعامل مع الأخطاء في PHP. يمكنك استخدام كتلة try-catch لمعالجة الاستثناءات بطريقة آمنة ومنظمة.

5.1 استخدام try-catch

يمكنك استخدام try-catch لتجربة كود معين ومعالجة أي استثناءات قد تحدث.

<?php
try {
    // كود قد يسبب استثناء
    throw new Exception('حدث خطأ!');
} catch (Exception $e) {
    // معالجة الاستثناء
    echo $e->getMessage();
}
?>

في هذا المثال، نقوم بإلقاء استثناء باستخدام throw ومن ثم نقوم بالتقاطه ومعالجته داخل كتلة catch.

5.2 تخصيص الاستثناءات

يمكنك إنشاء استثناءات مخصصة لمواقف محددة في كودك.

<?php
class CustomException extends Exception {}

try {
    // كود قد يسبب استثناء مخصص
    throw new CustomException('هذا استثناء مخصص!');
} catch (CustomException $e) {
    echo $e->getMessage();
}
?>

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

خاتمة

تصحيح الأخطاء في PHP هو عملية أساسية لضمان أن يعمل كودك بشكل صحيح وكما هو متوقع. باستخدام الأدوات والتقنيات التي تم تناولها في هذا المقال، يمكنك اكتشاف وإصلاح الأخطاء بسرعة وفعالية، مما يساعدك في تحسين جودة تطبيقاتك وضمان تجربة مستخدم ممتازة. تأكد دائمًا من تمكين عرض الأخطاء في بيئة التطوير وتسجيلها في بيئة الإنتاج لحماية أمان تطبيقك.

طور مهاراتك: مقالات يجب قراءتها في البرمجة