XF 2.3 كود PHP بسيط لفحص وصحة ملفات XML في إضافات XenForo الدرس (1)

أثناء تطوير إضافات XenForo (Add-ons)، خصوصًا عند العمل على ملفات البيانات الخاصة بالإضافة والموجودة داخل مجلد _data (مثل ملفات phrases.xml أو code_event_listeners.xml أو templates.xml)، قد تحدث أخطاء غير مقصودة في صياغة ملفات XML، مما يؤدي إلى فشل بناء الإضافة أو ظهور أخطاء غير مفهومة أثناء التثبيت/الترقية.

IMG_9836.webp

لحل هذه المشكلة وتسهيل عملية اكتشاف الأخطاء بسرعة، أشارككم اليوم سكربت PHP مصغر وفّعال لفحص صحة سلامة ملفات XML وتأكيد استيفائها للمعايير البرمجية.

الكود البرمجي:
PHP:
<?php

$dir = __DIR__ . '/src/addons/codeNET/DownloadGate/_data/';

foreach (glob($dir . '*.xml') as $file)
{
    libxml_use_internal_errors(true);

    $xml = simplexml_load_file($file);

    echo '<h3>' . htmlspecialchars(basename($file)) . '</h3>';

    if ($xml === false)
    {
        echo '<pre>';

        foreach (libxml_get_errors() as $error)
        {
            echo htmlspecialchars(trim($error->message)) . "\n";
        }

        echo '</pre>';
    }
    else
    {
        echo '<strong style="color:green">OK</strong>';
    }

    libxml_clear_errors();
}

كيف يعمل السكربت؟

* تحديد المسار: يستهدف مجلد البيانات الخاص بإضافتك المحددة في المسار $dir.
* البحث التلقائي: يمر عبر جميع الملفات التي تنتهي بـ .xml داخل المجلد المذكور باستخدام الدالة glob().
* معالجة الأخطاء بذكاء: يستخدم libxml_use_internal_errors(true) لتعطيل إخراج أخطاء PHP المباشرة وتجميعها ليتم عرضها بشكل منظم.
* التحقق والعرض:
- في حال كان الملف سليماً، يطبع كلمة OK.
- في حال وجود خلل في بناء الملف (مثل وسم غير مغلق أو بناء خاطئ)، يطبع السكربت رسالة الخطأ ورقم السطر بدقة لتسهيل معالجته مباشرة.

طريقة الاستخدام:

1. قم بإنشاء ملف باسم check_xml.php في الجذر الرئيسي للمنتدى (المسار الذي يحتوي على مجلد src).
2. قم بتعديل مسار الإضافة في السطر الثاني ليتناسب مع الإضافة التي تعمل عليها (مثال: تغيير codeNET/DownloadGate إلى مسار إضافتك).
3. افتح الملف عبر المتصفح: https://your-domain.com/check_xml.php
4. لا تنسَ حذف الملف بعد الانتهاء من الفحص للحفاظ على أمان السيرفر.

IMG_9838.webp

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

حقوق النشر - كود نت .
 
عودة
أعلى أسفل