I'm always excited to take on new projects and collaborate with innovative minds.

Phone

+20 115 052 9992

Website

https://ibrahimahmed.online/

Social Links

إزاي تخلي كود الـ PHP بتاعك "برنس" باستخدام PHPStan و Laravel Pint

إزاي تخلي كود الـ PHP بتاعك "برنس" باستخدام PHPStan و Laravel Pint أكيد مريت بالموقف ده قبل كده: كتبت كود زي الفل، ورفعته على الـ Git، وبعدين اكتشفت إن في "Bug"

إزاي تخلي كود الـ PHP بتاعك "برنس" باستخدام PHPStan و Laravel Pint
Reading Count: 4

إزاي تخلي كود الـ PHP بتاعك "برنس" باستخدام PHPStan و Laravel Pint

أكيد مريت بالموقف ده قبل كده: كتبت كود زي الفل، ورفعته على الـ Git، وبعدين اكتشفت إن في "Bug" تافهة كانت ممكن تتحل لو بس حد بص على الكود! أو إنك شغال في فريق وكل واحد بيكتب الكود بطريقته الخاصة، فبقى الـ Codebase عبارة عن "شوربة" أشكال وألوان. هنا بيجي دور أتمتة جودة الكود (Code Quality Automation) اللي بتريح بالك وتخلي فريقك يركز في البيزنس بدل ما يضيع وقت في مراجعة المسافات والسيمي كولون.

ليه محتاج PHPStan و Laravel Pint في مشروعك؟

في عالم الـ PHP، عندنا أداتين بيعتبروا "المنقذ" لأي مبرمج محترف:

  • Laravel Pint: دي أداة بتخلي الكود بتاعك متناسق (Code Style) حسب معايير المجتمع (PSR-12). يعني بتصلح المسافات، الأقواس، وترتيب السطور بشكل تلقائي.
  • PHPStan: ده "المحلل الساكن" (Static Analysis Tool). ده مش بيصلح مسافات، ده بيدخل جوه المنطق بتاع الكود (Logic) وبيطلع لك الأخطاء اللي ممكن تقع فيها، زي مثلاً إنك بتبعت متغير ممكن يكون Null لدالة مش بتقبل Null، وده بيحميك من أخطاء الـ Runtime.

خطوات إعداد Laravel Pint وتنسيق الكود

الأداة دي بتيجي مع لارافيل جاهزة، ولو مش عندك تقدر تثبتها ببساطة:

composer require laravel/pint --dev

عشان تشغلها وتنسق الكود بتاعك، كل اللي عليك تعمله هو كتابة الأمر ده في التيرمينال:

./vendor/bin/pint

ممكن تعمل ملف إعدادات باسم pint.json في الروت عشان تحدد الرولز اللي عايز تمشي عليها، وبكده تضمن إن كل المبرمجين في الفريق بيطلعوا كود "شبه بعضه" بالظبط.

التحليل الساكن مع PHPStan لاكتشاف الأخطاء

هنا بقى بنروح للمستوى الأعمق. الـ Static Analysis بيقرأ الكود من غير ما يعمل له Run. عشان تبدأ، ثبته كـ Dev dependency:

composer require --dev phpstan/phpstan

بعدين انشئ ملف phpstan.neon وحدد مستوى الصرامة (Level) اللي أنت عايزه، من 0 لحد 9 (9 هو الأكثر صرامة):


parameters:
    level: 5
    paths:
        - app

لما تشغل ./vendor/bin/phpstan analyse، الأداة هتقولك بوضوح: "يا هندسة، المتغير ده ممكن يكون ملوش قيمة في السطر كذا"، وبكده بتصطاد المشاكل قبل ما توصل للمستخدم النهائي.

أتمتة العملية باستخدام الـ Git Hooks

عشان ننسى الوجع ده خالص، بنربط الأدوات دي بالـ Git Hooks. فكرة بسيطة: قبل ما تعمل "Commit"، الـ Git بيشغل الأوامر دي أتوماتيك. لو الكود فيه خطأ، الـ Commit مش هيتم غير لما تصلح الكود. ده بيضمن إن مفيش "كود وحش" يدخل الـ Repository أساساً.

نصيحة من أخ لمبرمج زميل

يا صديقي، أدوات الجودة مش عشان تعقدك أو تعطل شغلك، هي عشان "تشتري دماغك". لما تلاقي الكود بتاعك ماشي على معايير ثابتة ومفحوص بأعلى مستويات التحليل، ثقتك في الكود بتاعك بتزيد، والـ Technical Debt عندك بتقل بمرور الوقت. ابدأ بمستوى بسيط في PHPStan، ومع الوقت عّلّي الـ Level. الاستمرارية هي اللي بتصنع المبرمج المحترف، مش بس كتابة الكود.


Share

Related posts

Jul 05, 2026 • 1 min read
Reading Count: 8
إزاي تبني نظام تعدد المستأجرين (Multitenancy) في لاراڤل لمشاريع الـ SaaS العملاقة؟

إزاي تبني نظام تعدد المستأجرين (Multitenancy) في لاراڤل لمشاريع الـ SaaS العملاقة؟ لو بتفكر تبني منص...

Jul 05, 2026 • 1 min read
Reading Count: 8
إزاي تخرج عن التقليدية وتعمل تصميمات مجلات (Magazine Layouts) احترافية بـ Bootstrap

إزاي تخرج عن التقليدية وتعمل تصميمات مجلات (Magazine Layouts) احترافية بـ Bootstrap بتشوف مواقع المج...

Jul 04, 2026 • 1 min read
Reading Count: 17
دليلك العملي لدخول عالم الويب 3 (Web3) والتعامل مع المحافظ الإلكترونية باستخدام Ethers.js

دليلك العملي لدخول عالم الويب 3 (Web3) والتعامل مع المحافظ الإلكترونية باستخدام Ethers.js أهلاً بك ي...