أدوات تعقب أخطاء الصفحات النموذجية

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

  • Apparu en : SPIP 2.0

يتم استخدام أداتي «var_mode» و«var_profile» بإضافة اما ?var_mode=... (مثلاً: -عنوان القسم-?var_mode=...)، او &var_mode=... (مثلاً: spip.php?article3&var_mode=...) الى عنوان URL للصفحة المناداة.
ولا يتم تفعيل استخدامهما الا للمدراء المتصلين.

var_mode=calcul   و   var_mode=recalcul

يقوم نداء «var_mode=calcul» بإعادة إنتاج رموز html (أي يطلق تنفيذ الرموز التي تم تصنيفها) وإعادة تحديث الذاكرة المخبأة (أي إنتاج ملفات html التي تتم قراءتها لدى تحميل الصفحة في ما بعد).

أما نداء «var_mode=recalcul»، فيقوم بإعادة انتاج رموز php (أي يقوم بإعادة تصنيف الصفحة النموذجية) ثم إعادة إنتاج رموز html (أي يطلق تنفيذ الرموز التي تم تصيفها) وأخيراً إعادة تحديث الذاكرة المخبأة (أي إنتاج ملفات html التي تتم قراءتها لدى تحميل الصفحة في ما بعد).
تقوم إعادة حساب الصفحة (recalcul) بإعادة إنتاج أوراق الأنماط ورموز جافاسكريبت المضغوطة.
لا تنطبق إعادة الحساب على الصور (مصغرات، صور نصوص، الخ)

يمكن إطلاق هذين الندائين بالنقر على أزرار الإدارة

فالنقرة الأولى تطلق «var_mode=calcul» (يعني ظهور نجمة صغيرة أمام إسم الزر ان الصفحة مسحوبة من الذاكرة المخبأة).

وتطلق النقرة الثانية «var_mode=recalcul».

تنبيه: قد نرغب في استخدام &var_mode=recalcul في الوصلات المكتوبة في الصفحات النموذجية (لفرض تحديث أوراق الأنماط وجافاسكريبت مثلاً). ولكن هذه فكرة سيئة للغاية لأنها تسهلك الكثير من موارد الخادم (إعادة تصنيف الصفحة النموذجية).

var_mode=inclure

يعرض نداء «var_mode=inclure» اسم كل ملف مدرج تتألف منه الصفحة ومساره.

ويتيح ذالك التأكد من ان الملفات التي أدرجتها الصفحة النموذجية هي فعلاً تلك المراد ادراجها.

var_profile=1

يعرض نداء «var_profile=1» تفاصيل استفسارات قاعدة البيانات والفترات التي استغرقها كل منها. ويتم ترتيب الاستفسارات من الأكثر تطلباً الى الأقل (أي الأسرع).

وهذه الوظيفة مهمة جداً اذا اردنا التدقيق في ما يجعل الصفحة بطيئة التحميل والعرض.
فتتيح مشاهدة الاستفسارات التي تنتجها كل حلقة في الصفحة النموذجية (بما في ذلك الصفحات المدرجة) كما الاستفسارات المستقلة (خارج أي حلقة ويقال لها «خارج التصنيف») التي ينتجها SPIP.

وتعرض الوظيفة:

  • لكل حلقة
    • عدد المرات التي تم فيها تنفيذ الحلقة (وبالتالي الاستفسار)
    • الفترة (بالثواني) التي استغرقها تنفيذ الحلقة (اي فترة الاستفسار التابع للحلقة مضروبة بعدد المرات التي تم فيها التنفيذ)
    • لائحة (مرتبة زمنياً لكل الاستفسارات الناتجة عن الصفحة) كل تنفيذ للاستفسار (والذي يشكل وصلة الى تفاصيل كل استفسار)
  • الاستفسارات خارج الحلقات
  • الفترة الإجمالية لتنفيذ مجمل استفسارات الصفحة
  • تفاصيل كل استفسار تم تنفيذه مع:
    • جدول إحصائي يعرض فذلكة الاستفسار
    • اسم الاستفسار
تنبيه: يجبر حساب الصفحة (&var_profile=1&var_mode=calcul) قبل إطلاق هذه الوظيفة لئلا تكون النتائج المعروضة ناتجة عن الذاكرة المخبأة وبالتالي مخلوطة.

var_mode=preview

يتيح نداء «var_mode=preview» من المجال الخاص عرض مقل لم ينشر بعد (وضعية معروض للتقييم) في الموقع العمومي دون الحاجة الى نشره.

var_mode=urls

L’appel de «var_mode=urls» force la mise à jour de toutes les urls de la page.

var_mode=debug

يعرض نداء «var_mode=debug» تفصيل إنتاج الصفحة (الحلقات - استفسارات قاعدة البيانات - رموز php -إحصاءات الاستفسارات).

وتعرض هذه الوظيفة للصفحة الرئيسية كما للصفحات المدرجة:

  • لائحة قيم متغيرات البيئة (ENV#) التي تم تمريرها الى الصفحة النموذجية المنادية
  • لائحة الحلقات

أما الوصلات المعروضة فتأخذ الى:

  • الصفحة النموذجية
    نص رموز الصفحة (مما يجنب الذهاب الى ملف html. لقراءة محتواه)
    • النتيجة
      الرموز البرمجية الناتجة عن الصفحة الحالية بالذات (دون الصفحات المدرجة اذا وجدت) والتي لدى تقييمها تسترجع علامات html في المتصفح
    • الرموز البرمجية
      رموز php التي انتجها المصنف (تتوجه المطورين المتمرسين) والتي لدى تقييمها تنتج النتيجة (المذكورة أعلاه)
    • الحساب
      تفاصيل الاستفسارات وفترة معالجة كل منها (انظر var_profile أعلاه)
  • حلقة
    نص رموز الحلقة كاملة (من <B_abc> الى <//B_abc>)
    • النتيجة
      استفسار قاعدة البيانات الناتج عن الحلقة المدروسة
      لائحة النتائج الأولى التي يسترجعها هذا الاستفسار [1]
    • الرموز البرمجية
      رموز php (التي انتجها المصنف) العائدة الى الدالة المحددة المرتبطة بهذه الحلقة (تتوجه المطورين المتمرسين)
    • حساب
      تفاصيل استفسارات قاعدة البيانات المرتبطة بهذه الحلقة وفترات تنفيذها (انظر var_profile أعلاه).

عرض محتوى جدول من قاعدة البيانات

يقوم نداء لعنوان ?page=table: اسم_الجدول موجه من الموقع العمومي، بعرض محتوى جدول قاعدة البيانات المطلوب وذلك على شكل جدول.
مثلاً: ?page=table:articles لجدول spip_articles.

ويعرض السطر الأول في الجدول حقول جدول قاعدة البيانات بالترتيب الأبجدي (تنبيه: لا يجب الخلط بين الرقم «» والمعرف «..._id») وبمكن النقر على أحد هذه الحقول لترتيب النتائج حسبه (صعوداً او نزولاً).

أما السطر الثاني، فيتيح البحث عن قيمة محددة لحقل ما.

ويتم عرض مجمل البيانات بطريقة التصفح حيث تحتوي كل صفحة عشر نتائج.

ملاحظة: لا يمكن استخدام هذه الوظيفة التي تعرض كل محتوى قاعدة البيانات الا من قبل مشرف الموقع الذي سجل دخوله.

ملاحظة: كانت هذه الوظيفة متاحة في SPIP تحت اسم تفقير (vertebrer).

الحصول على معلومات إضافية حول تعقّب الأخطاء

 يمكن إيقاف ذاكرة SPIP المخبأة بإضافة

define('_NO_CACHE', -1);

في ملف config/mes_options.php

 يمكن تفعيل تسجيل أخطاء php بإضافة

error_reporting(E_ALL^E_NOTICE);
ini_set ("display_errors", "On");
define('SPIP_ERREUR_REPORT', E_ALL^E_NOTICE);
define('SPIP_ERREUR_REPORT_INCLUDE_PLUGINS', E_ALL^E_NOTICE);

في ملف config/mes_options.php

حواشي

[1من الممكن تغيير عدد النتائج المعروضة هنا بوضع السطر: define('_MAX_DEBUG_AFF', 'n'); في ملف mes_options.php الموجود (اذا انشئ) في المجلد config/.
(افتراضياً، ولتجنب عرض المئات من النتائج الناتجة عن حلقات كبيرة، يتم تحديد قيمة «n» بـ٥٠).

أنظر أيضاً مشاهد فيديو لورشات العمل المخصصة لهذا الموضوع خلال أيام أفينيون ٢٠٠٩: الأخطاء وتصحيحها: المستوى الأول et الأخطاء وتصحيحها في php: المستوى الثاني.

مؤلف George نُشر في: تم التحديث: 19/09/22

الترجمات: عربي, català, English, français, Nederlands, українська