العودة للمقالات
2026-07-08 Abdelrhman Yasser

تحسين أداء Laravel: أفضل ممارسات الإنتاج

تحسين أداء Laravel: من البطيء إلى فائق السرعة

مدة القراءة: 35 دقيقة

مقدمة

التطبيق البطيء يحبط المستخدمين، ويضر بترتيب SEO، ويزيد تكاليف الخادم. معظم مشاكل الأداء في Laravel سببها نفس الأنماط: استعلامات N+1، التخزين المؤقت المفقود، قوائم الانتظار غير المحسّنة، والأصول غير المحسّنة.

التخزين المؤقت (Caching)

تخزين الإعدادات المؤقت

php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache

تخزين البيانات

$categories = Cache::remember('categories.all', 3600, function () {
    return Category::all();
});

محركات التخزين المؤقت ومقارنتها:

المحركالسرعةالاستمراريةالأفضل لـ
Redis⚡⚡⚡⚡⚡نعمالإنتاج، الجلسات، التخزين، قوائم الانتظار
Memcached⚡⚡⚡⚡⚡نعمالتخزين الكبير
Fileنعمالتطوير

تحسين قاعدة البيانات

إنشاء الفهارس (Indexes)

Schema::table('orders', function (Blueprint $table) {
    $table->index('status');
    $table->index(['user_id', 'status']);
});

التقسيم إلى أجزاء (Chunking)

// بدلاً من تحميل مليون سجل في الذاكرة
User::chunk(100, function ($users) {
    foreach ($users as $user) { /* ... */ }
});

OPcache

إعدادات php.ini الموصى بها للإنتاج:

opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000

قوائم الانتظار (Queues)

// ❌ بطيء — ينتظر إرسال الإيميل
Mail::to($user)->send(new OrderConfirmation($order));

// ✅ سريع — يرسل المهمة لقائمة الانتظار
SendOrderConfirmation::dispatch($order)->onQueue('emails');

Laravel Octane

يحسن الأداء 10-50x بإبقاء التطبيق في الذاكرة بين الطلبات.

composer require laravel/octane
php artisan octane:start --server=swoole

قائمة النشر

php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache
php artisan queue:restart

أخطاء شائعة

  1. تعطيل OPcache في الإنتاج — كل طلب يعيد ترجمة كل ملفات PHP
  2. استخدام محرك sync في الإنتاج — يمنع الرد حتى يكتمل العمل
  3. عدم مراقبة عمال قوائم الانتظار — يتوقف العامل دون إشعار
  4. تحميل كل شيء في لوحة التحكم — استخدم pagination والتخزين المؤقت

أسئلة المقابلات

  1. ما هو OPcache وكيف تضبطه لـ Laravel؟
  2. اشرح محركات التخزين المؤقت المختلفة ومتى تستخدم كل منها.
  3. كيف يعمل Laravel Octane وما هي مقايضاته؟
  4. كيف تحدد وتصلح استعلامات N+1 في الإنتاج؟

مقالات ذات صلة

# Laravel# PHP# Performance# Optimization# Production# Caching
WhatsApp
تواصل عبر واتساب