مراقبة تطبيقات PHP: الأدوات والمكتبات لتتبع الأداء

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مراقبة تطبيقات PHP: الأدوات والمكتبات لتتبع الأداء



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



لماذا نحتاج إلى مراقبة تطبيقات PHP؟

تتيح المراقبة:

  • اكتشاف وتسجيل الأخطاء (الأخطاء الفادحة، التحذيرات، الاستثناءات).
  • تحليل الأداء: وقت تنفيذ الاستعلامات، نقاط الضعف في الكود.
  • تتبع الحمل: عدد الطلبات، استخدام وحدة المعالجة المركزية والذاكرة.
  • تلقي إشعارات حول الأعطال الحرجة في الوقت الفعلي.


بدون مراقبة، فإنك تخاطر بمعرفة المشكلة فقط من المستخدمين، مما قد يؤدي إلى فقدان الزوار والسمعة.



الأدوات الرئيسية للمراقبة



1. Xdebug — التنميط وتصحيح الأخطاء

Xdebug هو إضافة لـ PHP توفر إمكانيات التنميط والتتبع وتصحيح الأخطاء. إنه غير مخصص لبيئة الإنتاج، لكنه لا غنى عنه في مرحلة التطوير والاختبار.



الإمكانيات الرئيسية:

  • تتبع استدعاءات الدوال.
  • التنميط مع إخراج بتنسيق Cachegrind (يمكن تحليله عبر KCachegrind أو Webgrind).
  • تصحيح الأخطاء التفاعلي مع بيئة التطوير المتكاملة (مثل PhpStorm).


مثال على تفعيل التنميط:

// في php.inixdebug.mode = profilexdebug.output_dir = /tmp/profilingxdebug.start_with_request = yes


بعد تشغيل التطبيق، ستظهر ملفات التنميط في الدليل المحدد. يمكن فتحها في أداة تصور لرؤية أي الدوال تستهلك أكبر قدر من الوقت.



2. Sentry — جمع مركزي للأخطاء

Sentry هي منصة شائعة لمراقبة الأخطاء في الوقت الفعلي. تدعم PHP والعديد من اللغات الأخرى. مكتبة sentry/sentry سهلة التكامل مع أي مشروع.



التثبيت عبر Composer:

composer require sentry/sentry


مثال على التكامل الأساسي:

<?phprequire_once 'vendor/autoload.php';

use Sentry\\SentrySdk;use Sentry\\State\\Hub;use Sentry\\ClientBuilder;

$client = ClientBuilder::create(['dsn' => 'https://your-dsn@sentry.io/1234567'])->getClient();SentrySdk::getCurrentHub()->bindClient($client);

// مثال: تسجيل استثناءtry { throw new \\RuntimeException('خطأ اختباري');} catch (\\Throwable $e) { \\Sentry\\captureException($e);}


يقوم Sentry تلقائيًا بجمع تتبع الاستدعاءات، البيئة، بيانات الطلب، وإرسال الإشعارات عبر البريد الإلكتروني، Slack أو Telegram.



3. Blackfire — تنميط الأداء

Blackfire.io هي أداة قوية لتنميط تطبيقات PHP. تتيح رؤية ليس فقط وقت التنفيذ، ولكن أيضًا استهلاك الذاكرة، عدد استعلامات SQL، استدعاءات واجهات برمجة التطبيقات الخارجية، وأكثر من ذلك بكثير.



تثبيت الإضافة:

pecl install blackfire


مثال على الاستخدام في الكود:

<?php// بدء التنميط$probe = \\BlackfireProbe::start('profile_name');

// الكود الخاص بك$data = expensiveFunction();

// الإيقاف\\BlackfireProbe::stop($probe);


تُعرض النتائج في واجهة الويب الخاصة بـ Blackfire على شكل رسم بياني للاستدعاءات مع تفاصيل لكل دالة.



4. PHP Error Log — التسجيل المدمج

لا تنسَ الإمكانيات المدمجة في PHP. إعداد تسجيل الأخطاء هو خطوة أساسية ولكنها مهمة.



مثال على الإعداد في php.ini

توصيات