Laravel Debugbar: الأداة اللي خلتني أفهم وش يصير فعلًا داخل Laravel
في بداياتي مع Laravel كنت أعتمد على:
dd()
dump()
أو أحيانًا أكتب log وأرجع أشوفه بعدين.
كلها كانت تمشي الحال… لكن ما كانت تعطيني الصورة الكاملة.
كنت أشوف النتيجة، لكن ما أفهم وش صار في الطريق.
هنا دخلت Laravel Debugbar.
وش مشكلة الـ dd() مع الوقت؟
dd() ممتازة، وما أستغني عنها.
لكن مع مشروع يكبر، تبدأ المشاكل:
- يوقف التنفيذ بالكامل
- ما تشوف باقي الطلب
- صعب تتبع أكثر من نقطة بنفس الوقت
- ما يعطيك معلومات عن الأداء
كنت أحتاج أداة:
تشوف كل شيء بدون ما توقف التطبيق.
وش هو Laravel Debugbar؟
Laravel Debugbar يضيف لك شريط أسفل الصفحة (في بيئة التطوير فقط)
يعرض لك معلومات حقيقية عن الطلب الحالي، مثل:
- الاستعلامات (SQL)
- الوقت المستغرق
- الـ Routes
- الـ Views
- الـ Request والـ Session
- المتغيرات اللي سويت لها dump
والأهم:
كل هذا بدون ما يكسر الصفحة.
تثبيت Debugbar (أبسط خطوة)
ثبتها عن طريق Composer:
composer require barryvdh/laravel-debugbar --dev
هي تلقائيًا تشتغل في:
APP_ENV=local
وما تطلع في الإنتاج.
أول شيء لاحظته: الاستعلامات
أكثر شيء صدمني أول مرة شغلت Debugbar:
عدد الاستعلامات.
أحيانًا صفحة بسيطة فيها:
هنا بدأت أفهم مشاكل:
- N+1 Query
- lazy loading
- علاقات Eloquent غير مضبوطة
Debugbar يوريك:
تتبع الأداء (ليش الصفحة بطيئة؟)
قبل Debugbar:
كنت أحس الصفحة بطيئة… بس ما أعرف ليه.
بعد Debugbar:
شفت الوقت مقسم بوضوح:
- Bootstrapping
- Controller
- View rendering
- Queries
وهنا تقدر تعرف:
هل المشكلة في:
- قاعدة البيانات
- الـ View
- منطق التطبيق
بديل أنظف لـ dd()
بدل:
dd($user);
صرت أستخدم:
debug($user);
الفرق:
- الصفحة تكمل
- البيانات تظهر في Debugbar
- تقدر تضيف أكثر من debug بنفس الصفحة
هذا فرق معي كثير في الصفحات المعقدة.
متابعة الـ Request والـ Session
من أكثر الأشياء اللي استخدمها:
- Request Data
- Session Values
خصوصًا في:
Debugbar يوريك:
بدون ما تطبع شيء يدوي.
متى أوقف Debugbar؟
في مشاريع كبيرة، أحيانًا أوقفه مؤقتًا لما أخلص Debugging:
DEBUGBAR_ENABLED=false
أو من config:
'enabled' => env('DEBUGBAR_ENABLED', true),
وأرجعه وقت الحاجة.
ليش Debugbar صار أداة أساسية عندي؟
اليوم، أي مشروع Laravel أبدأ فيه:
Debugbar موجود من أول يوم.
لأنه:
- يخليني أفهم التطبيق
- يساعدني أكتب كود أنظف
- يكشف مشاكل ما كنت أشوفها
- يوفر وقت كبير في التتبع