مراقبة تطبيقات PHP باستخدام مكتبتي php-ast و xhprof

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

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

ابدأ الدورة

ما هي مراقبة تطبيقات PHP ولماذا هي ضرورية؟

مراقبة تطبيقات PHP هي عملية جمع وتحليل وتصور مقاييس الأداء والأخطاء واستخدام الموارد لتطبيقات الويب المكتوبة بلغة PHP. بدون المراقبة، من المستحيل تحديد الاختناقات، أو تسرب الذاكرة، أو الاستعلامات البطيئة لقاعدة البيانات، أو الكود غير الأمثل. المكتبات الرئيسية لذلك هي xhprof (التوصيف) و php-ast (تحليل شجرة النحو المجردة).

كيف يتم التثبيت؟

لتثبيت xhprof (إضافة للتوصيف) قم بتنفيذ:

pecl install xhprof

أضف في ملف php.ini:

extension=xhprof.so

لـ php-ast (تحليل AST):

pecl install ast

ثم قم بتوصيله عبر composer:

composer require phpunit/php-code-coverage

الوظائف الرئيسية

  • توصيف الطلبات — يقوم xhprof بجمع بيانات حول وقت التنفيذ، وعدد استدعاءات الدوال، واستخدام الذاكرة.
  • تحليل النحو — يتيح php-ast تحليل كود PHP إلى شجرة نحو مجردة للتحليل الثابت.
  • مراقبة الأخطاء — التكامل مع Sentry أو Monolog لتسجيل الاستثناءات.
  • مقاييس الأداء — وقت الاستجابة، عدد الطلبات في الثانية (RPS)، استخدام وحدة المعالجة المركزية/الذاكرة العشوائية.

مثال على كود PHP

<?php// التوصيف باستخدام xhprofxhprof_enable();

// كود تطبيقك$result = someHeavyFunction();

$xhprofData = xhprof_disable();include_once '/path/to/xhprof_lib/utils/xhprof_lib.php';include_once '/path/to/xhprof_lib/utils/xhprof_runs.php';$xhprofRuns = new XHProfRuns_Default();$runId = $xhprofRuns->save_run($xhprofData, 'my_app');echo 'Profiler run ID: ' . $runId;

// تحليل AST باستخدام php-ast$code = file_get_contents('index.php');$ast = ast\\parse_code($code, $version = 70);echo ast\\get_kind_name($ast->kind);?>

متى يتم الاستخدام؟

المراقبة ضرورية في بيئة الإنتاج لتتبع تدهور الأداء بعد الإصدارات، وأثناء اختبارات الحمل، وكذلك للبحث عن تسرب الذاكرة في العمليات طويلة العمر (مثل قوائم الانتظار أو خوادم WebSocket). المكتبات xhprof و php-ast مناسبة تمامًا للتكامل في خطوط CI/CD وأنظمة المراقبة (Prometheus, Grafana).

الخلاصة

استخدام أدوات التوصيف والمحللات الثابتة هو ممارسة إلزامية للحفاظ على جودة عالية لتطبيقات PHP. ابدأ بتثبيت xhprof و php-ast للحصول على صورة كاملة لأداء كودك.

توصيات