الأداء درس تعليمي

تعزيز أداء تطبيق لارافيل باستخدام Laravel Boost

Admin User
Admin User
Apr 27, 2026
3 دقيقة قراءة

Key Takeaways

  • # مقدمة
  • Laravel Boost هو حزمة خفيفة الوزن تعمل على تحسين أداء تطبيقات Laravel عن طريق توفير التخزين المؤقت الذكي، تحسين الاستعلامات، وتحميل المسارات مسبقاً. في...

مقدمة

Laravel Boost هو حزمة خفيفة الوزن تعمل على تحسين أداء تطبيقات Laravel عن طريق توفير التخزين المؤقت الذكي، تحسين الاستعلامات، وتحميل المسارات مسبقاً. في هذا الدرس سنقوم بتثبيت، تهيئة، واستخدام Laravel Boost في مشروع حقيقي.


1. التثبيت #

نفذ أمر Composer التالي:

composer require laravel/boost

الحزمة تسجل موفر الخدمة تلقائياً (Laravel 5.5+). إذا كنت تستخدم نسخة أقدم، أضف الموفر يدوياً في config/app.php:

'providers' => [
    // ... موفري الخدمة الآخرين
    Laravel\Boost\BoostServiceProvider::class,
];

2. نشر ملف الإعدادات #

php artisan vendor:publish --tag=boost-config

سيظهر لك الآن ملف config/boost.php. أهم الخيارات:

  • cache_driver – سائق التخزين المؤقت المستخدم (الافتراضي: redis).
  • query_cache_ttl – مدة بقاء الاستعلامات في الذاكرة المؤقتة.
  • route_preload – تمكين أو تعطيل تحميل المسارات مسبقاً.

3. الاستخدام الأساسي #

3.1 تخزين الاستعلامات مؤقتاً #

غلف أي استعلام Eloquent بـ Boost::remember():

use Laravel\Boost\Boost;

$users = Boost::remember(300, function () {
    return User::where('active', true)->get();
});

سيتم تخزين النتيجة في الذاكرة المؤقتة لمدة 300 ثانية باستخدام السائق المحدد.

3.2 تحميل المسارات مسبقاً #

أضف Middleware BoostRoute إلى مجموعة web في app/Http/Kernel.php:

protected $middlewareGroups = [
    'web' => [
        // ... Middleware أخرى
        \Laravel\Boost\Middleware\BoostRoute::class,
    ],
];

الآن سيقوم أول طلب لكل مسار بحفظ نسخة مُجمعة على القرص، مما يقلل وقت الإقلاع للطلبات اللاحقة.


4. التهيئة المتقدمة #

4.1 إبطال التخزين المؤقت باستخدام العلامات (Tags) #

يمكنك وضع علامة على الاستعلامات لتفريغها بشكل انتقائي:

Boost::rememberTag('users', 600, function () {
    return User::all();
});

// عند تعديل أحد المستخدمين:
Boost::flushTag('users');

4.2 حذف التخزين المؤقت غير النشط تلقائياً #

قم بتمكين auto_prune في config/boost.php ليقوم الحزمة بتنظيف البيانات المنتهية صلاحيته عبر أمر مجدول:

php artisan schedule:run

أضف الأمر التالي إلى app/Console/Kernel.php:

protected function schedule(Schedule $schedule)
{
    $schedule->command('boost:prune')->hourly();
}

5. اختبار تأثير Boost #

استخدم Laravel Telescope أو Laravel Debugbar قبل وبعد تمكين Boost. يجب أن تلاحظ:

  • تقليل عدد استعلامات قاعدة البيانات.
  • انخفاض زمن تنفيذ الطلب.
  • تسريع تحميل المسارات.

6. الأخطاء الشائعة #

  • اختلاف سائق التخزين المؤقت: تأكد من تطابق السائق في cache.php و boost.php.
  • الحمولة الكبيرة: تجنب تخزين مجموعات نتائج ضخمة؛ استخدم التجزئة (pagination).
  • بيانات قديمة: لا تنس تفريغ العلامات عند تعديل البيانات الأصلية.

7. الخاتمة #

توفر Laravel Boost بداية سريعة لتحقيق تحسينات ملحوظة في الأداء مع إمكانية التحكم التفصيلي عند الحاجة. اجمعها مع وظائف الطابور و Horizon لتكوين بيئة Laravel قوية وقابلة للتوسعة.


برمجة موفقّة!

FAQs

هل يجب تعديل الاستعلامات الحالية لاستخدام Laravel Boost؟
لا، Laravel Boost يعمل مباشرة مع معظم الاستعلامات. للحصول على أفضل أداء، غلف الاستعلامات الثقيلة بـ `Boost::remember()` أو استخدم التخزين المؤقت بالعلامات.
هل يمكن استخدام Laravel Boost مع سائق التخزين المؤقت على الملفات؟
نعم، يمكنك تعيين `cache_driver` إلى `file` في `config/boost.php`، لكن يفضَّل استخدام Redis أو Memcached في بيئات الإنتاج لسرعتها.

Want more content like this?

Explore more tutorials in the الأداء section.

Explore الأداء

You might also like