مراقبة تطبيقات PHP باستخدام PHPMetrics

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

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

ابدأ الدورة

ما هي PHPMetrics؟

PHPMetrics هي مكتبة قوية للتحليل الثابت ومراقبة تطبيقات PHP. تتيح لك جمع مقاييس الكود مثل التعقيد، تغطية الاختبارات، عدد الأسطر، التبعيات، والمشاكل المحتملة. تتكامل المكتبة مع خطوط أنابيب CI/CD وتساعد المطورين في الحفاظ على جودة الكود بمستوى عالٍ.

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

مراقبة تطبيقات PHP لا تقتصر فقط على تتبع الأداء في وقت التشغيل، بل تشمل أيضًا مراقبة جودة الكود. تساعد PHPMetrics في اكتشاف "روائح" الكود (code smells)، والتعقيد المفرط، وانتهاكات معايير PSR. هذا مهم بشكل خاص للمشاريع الكبيرة حيث تكون الحفاظ على نقاء الكود أمرًا حاسمًا لقابلية التوسع وتقليل الديون التقنية.

التركيب

يتم تركيب PHPMetrics عبر Composer:

composer require --dev phpmetrics/phpmetrics

بعد التركيب، يمكنك تشغيل التحليل من سطر الأوامر:

vendor/bin/phpmetrics --report-html=./report /path/to/your/project

سينشئ ذلك تقرير HTML مع تصور للمقاييس.

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

  • التحليل الثابت: تقييم التعقيد الحلقي، عمق الوراثة، وترابط الفئات.
  • إنشاء التقارير: HTML، JSON، XML — للتكامل مع Jenkins، GitLab CI أو Grafana.
  • مراقبة التغطية: تحليل تغطية الكود بالاختبارات (يتطلب PHPUnit).
  • تصور التبعيات: رسوم بيانية للفئات والحزم.
  • التكامل مع CI/CD: إمكانية إيقاف البناء عند تجاوز حدود التعقيد.

مثال على كود PHP

فيما يلي مثال لاستخدام PHPMetrics في سكريبت للتحليل البرمجي:

<?phprequire_once 'vendor/autoload.php';

use PHPMetrics\\Metrics\\Project;use PHPMetrics\\Report\\HtmlReport;use PHPMetrics\\Report\\JsonReport;

// إنشاء كائن المشروع$project = new Project('/path/to/your/php/code');$project->run(); // تشغيل التحليل

// الحصول على المقاييس$metrics = $project->getMetrics();echo 'متوسط التعقيد: ' . $metrics->getAverageComplexity() . PHP_EOL;echo 'عدد الفئات: ' . $metrics->getNumberOfClasses() . PHP_EOL;

// إنشاء تقرير بصيغة JSON$jsonReport = new JsonReport($project);file_put_contents('metrics.json', $jsonReport->generate());

// أو HTML$htmlReport = new HtmlReport($project);$htmlReport->generateToFile('report.html');

يمكن تشغيل هذا السكريبت في cron أو كجزء من عملية النشر.

متى تستخدم

PHPMetrics مثالية لـ:

  • التدقيق المنتظم للكود ضمن CI/CD (مثلًا قبل كل دمج في main).
  • تقييم الديون التقنية أثناء إعادة الهيكلة.
  • مراقبة جودة الكود في المشاريع طويلة الأجل.
  • تدريب الفريق — التقارير المرئية تساعد في فهم أجزاء الكود التي تحتاج إلى تحسين.

لا تستخدم PHPMetrics لمراقبة الأداء في الوقت الفعلي (لهذا يوجد Xdebug أو Blackfire). إنها أداة تحليل ثابت وليست أداة تنميط وقت التشغيل.

إدخال PHPMetrics في عملية التطوير يقلل من عدد الأخطاء ويبسط صيانة الكود، خاصة في الفرق الموزعة.

توصيات