انتقل إلى محتوى الدرس
الدرس 59
دورة إطار العمل Laravel

تحسين أداء تطبيق Laravel والتخزين المؤقت لبيئة الإنتاجOptimizing Laravel Performance and Caching for Production

تجميع الإعدادات والمسارات والعروض بأمر php artisan optimize وتحسين التحميل التلقائي لـ Composer وبناء أصول الإنتاج.
أقسام الدرس
6
الأمثلة
6
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
0
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

عند تجهيز تطبيق Laravel لبيئة الإنتاج، تبدأ أولى خطوات تحسين الأداء بتسريع آلية عثور PHP على ملفات الكلاسات وتحميلها. يقوم تشغيل أمر composer install مع الخيار --no-dev باستبعاد حزم التطوير، بينما يحول الخيار --optimize-autoloader البحث في المجلدات إلى خريطة كلاسات ثابتة وسريعة.

  • استبعاد حزم التطوير (Excluding Dev Packages): يمنع الخيار --no-dev تثبيت أدوات الاختبار والتصحيح داخل مجلد vendor في خادم الإنتاج.
  • توليد خريطة الكلاسات (Static Classmap Generation): يجهز الخيار --optimize-autoloader مسارات الملفات مسبقاً في مصفوفة لتقليل فحص القرص.
  • الالتزام بملف القفل (Deterministic Lockfile): نفذ دائماً أمر composer install وليس update في الإنتاج لضمان تطابق إصدارات الحزم مع composer.lock.
مخطط معماري يوضح تحسين أداء تطبيق Laravel والتخزين المؤقت لبيئة الإنتاج في إطار العمل Laravel 12
PHP
# Run during production deployment:
composer install --no-dev --optimize-autoloader
// Verified in Laravel 12
// Verified in Laravel 12

يقوم Laravel افتراضياً بقراءة ملف البيئة وتحميل عشرات الملفات المنفصلة داخل مجلد config مع كل طلب HTTP وارد. يدمج الأمر php artisan config:cache جميع مصفوفات الإعدادات في ملف واحد سريع، مما يفرض قاعدة صارمة باستدعاء دالة env داخل ملفات مجلد config فقط.

  • دمج الإعدادات بملف واحد (Single-File Config Load): يكتب الأمر config:cache ملفاً مدمجاً في bootstrap/cache ليتخطى Laravel قراءة ملف البيئة في كل طلب.
  • القاعدة الذهبية لدالة env (The Golden env Rule): بعد تفعيل كاش الإعدادات، تُرجع دالة env القيمة null في أي مكان خارج ملفات مجلد config.
  • القراءة عبر دالة config (Reading via config): اقرأ القيم دائماً داخل المتحكمات والكلاسات باستخدام دالة config('app.name') الآمنة.
PHP
// config/services.php (Allowed to call env):
'stripe' => ['key' => env('STRIPE_KEY')],

// In Controller (Always use config helper):
$key = config('services.stripe.key');

// Terminal: php artisan config:cache

إلى جانب الإعدادات، يستطيع Laravel ترجمة جدول المسارات وقوالب Blade وخريطة الأحداث والمستمعات مسبقاً لكي لا يهدر خادم الإنتاج أي وقت في التحليل أثناء استقبال الزوار. تكتب أوامر route:cache و view:cache و event:cache ملفات PHP مترجمة وجاهزة للتنفيذ الفوري.

  • تجميع جدول المسارات (Route Table Compilation): يحول الأمر route:cache جميع مسارات التطبيق إلى مصفوفة مطابقة فائقة السرعة.
  • الترجمة المسبقة للقوالب (Blade Precompilation): يترجم الأمر view:cache كافة ملفات Blade إلى كود PHP صريح قبل وصول أول زائر.
  • حفظ خريطة الأحداث (Event Discovery Cache): يحفظ الأمر event:cache ربط الأحداث بالمستمعات لتجنب فحص الكلاسات في كل طلب.
PHP
# Precompile routes, views, and events:
php artisan route:cache
php artisan view:cache
php artisan event:cache

بدلاً من تشغيل كل أمر تخزين مؤقت على حدة، يوفر Laravel 12 الأمر الموحد php artisan optimize لتجميع الإعدادات والمسارات والعروض والأحداث في خطوة واحدة. وعند الحاجة لمسح جميع الملفات المجمعة دفعة واحدة، يتولى الأمر php artisan optimize:clear تنظيفها بالكامل.

  • التحسين بأمر واحد (One-Command Optimization): نفذ الأمر php artisan optimize في نهاية كل عملية نشر على خادم الإنتاج.
  • المسح الشامل للكاش (Instant Cache Reset): استخدم الأمر php artisan optimize:clear أثناء التطوير لمسح جميع ملفات الكاش المجمعة بضغطة واحدة.
  • تقرير الحالة المرئي (Visual Status Output): يعرض كلا الأمرين قائمة واضحة في الطرفية توضح حالة كل مكون والزمن المستغرق.
PHP
# Compile all production caches at once:
php artisan optimize

# Clear all cached bootstrap & view files:
php artisan optimize:clear

تحتاج ملفات الواجهة الأمامية CSS و JavaScript أيضاً إلى التجميع والضغط لبيئة الإنتاج عبر تشغيل الأمر npm run build. يقوم Vite بتوليد الملفات المضغوطة داخل مجلد public/build/assets بأسماء تحمل بصمة المحتوى، ويكتب ملف manifest.json الذي يقرؤه توجيه @vite في القوالب تلقائياً.

  • الضغط وحذف الكود غير المستخدم (Minification & Tree-Shaking): يزيل الأمر npm run build المسافات الزائدة والأكواد غير المستعملة لتقليص حجم الملفات.
  • بصمة كسر الكاش (Cache-Busting Hashes): يولد أسماء ملفات فريدة مثل app-Df82aK.css ليحمل المتصفح النسخة الجديدة فور نشر التحديث.
  • قراءة ملف البيان (Manifest Resolution): في الإنتاج، يقرأ توجيه @vite مسارات الملفات من manifest.json بدلاً من خادم التطوير المحلي.
PHP
# Install Node dependencies & build production assets:
npm ci
npm run build
# Outputs public/build/manifest.json

يضمن الجمع بين تحسين التحميل التلقائي في Composer وأمر php artisan optimize وبناء أصول الواجهة عبر npm run build تقديم تطبيق Laravel 12 لاستجابات فائقة السرعة تحت ضغط الزوار في الإنتاج. راجع التسلسل الكامل لأوامر التحسين في الملخص التالي.

وجه المقارنة الهندسيالأسلوب المتزامن أو التقليديمعيار Laravel 12 الحديث
تحميل كلاسات Composerترك حزم التطوير والبحث عن الملفات في القرص مع كل طلباستخدام --no-dev و --optimize-autoloader لبناء خريطة كلاسات ثابتة
قراءة الإعدادات والبيئةتحليل ملف .env وعشرات ملفات config في كل زيارةدمج كافة الإعدادات في ملف واحد سريع عبر php artisan optimize
ترجمة المسارات والقوالببناء جدول المسارات وترجمة قوالب Blade لحظياً أثناء الطلبترجمة مسبقة شاملة عبر route:cache و view:cache و event:cache
تسليم أصول الواجهة الأماميةتقديم ملفات CSS و JS كبيرة الحجم وغير مضغوطة للمتصفححزم مضغوطة ببصمة كاش عبر الأمر القياسي npm run build
PHP
composer install --no-dev --optimize-autoloader
npm ci && npm run build
php artisan optimize
// Verified in Laravel 12
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

أتقنت في هذا الدرس حول «تحسين أداء تطبيق Laravel والتخزين المؤقت لبيئة الإنتاج» مفاهيم تحسين التحميل التلقائي في Composer، وتجميع ملفات الإعدادات بأمر config، وتجميع المسارات والعروض والأحداث وفق معايير Laravel 12 الحديثة.

الخطوة التالية والدرس القادم

انتقل الآن إلى الدرس التالي «تأمين ونشر تطبيقات Laravel على خوادم الإنتاج الحية» للبناء التراكمي على ما تعلمته.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 App Optimization تحسين الأداء
تجميع الإعدادات والمسارات والعروض بأمر php artisan optimize وتحسين التحميل التلقائي لـ Composer وبناء أصول الإنتاج.
للمراجعة
02 Optimizing Composer Autoloader Files تحسين التحميل التلقائي في Composer
المفهوم الهندسي والتطبيق العملي المباشر لقسم تحسين التحميل التلقائي في Composer في إطار العمل Laravel 12.
للمراجعة
03 Caching Configuration and Env Rules تجميع ملفات الإعدادات بأمر config
المفهوم الهندسي والتطبيق العملي المباشر لقسم تجميع ملفات الإعدادات بأمر config في إطار العمل Laravel 12.
للمراجعة
04 Compiling Routes Views and Events تجميع المسارات والعروض والأحداث
المفهوم الهندسي والتطبيق العملي المباشر لقسم تجميع المسارات والعروض والأحداث في إطار العمل Laravel 12.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 MVC MVC
Model View Controller
النمط المعماري الذي يفصل بين نماذج البيانات Models، وطبقات العرض Views، والمتحكمات Controllers في Laravel.
للمراجعة
02 CLI CLI
Command Line Interface
واجهة سطر الأوامر التي تعمل عبر أداة php artisan لتوليد الملفات وإدارة التطبيق.
للمراجعة
03 HTTP HTTP
Hypertext Transfer Protocol
بروتوكول نقل النص الفائق الذي ينظم طلبات المتصفح واستجابات خادم Laravel.
للمراجعة
04 PSR PSR
PHP Standards Recommendations
المعايير القياسية للغة PHP مثل التحميل التلقائي PSR-4 التي يلتزم بها إطار العمل Laravel.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. اكتب ونفّذ المثال البرمجي المشروح في قسم «تحسين التحميل التلقائي في Composer» داخل مشروع Laravel 12 المحلي وتحقق من النتيجة.

  2. بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم «تجميع ملفات الإعدادات بأمر config» وقارن مخرجات التنفيذ.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

8أسئلة 3أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي8 أسئلة تنتظرك
01

ما الهدف الهندسي الأساسي من تحسين التحميل التلقائي في Composer في إطار العمل Laravel 12؟

يسهم تحسين التحميل التلقائي في Composer في تنظيم منطق التطبيق بأسلوب معياري آمن وقابل للصيانة في Laravel 12.

02

يساعد الالتزام باصطلاحات Laravel 12 الرسمية في قسم «تجميع ملفات الإعدادات بأمر config» على رفع جودة الكود وسهولة اختباره آلياً.

صواب؛ الالتزام بالمعايير القياسية في Laravel 12 يجعل الكود واضحاً وسهل الفحص والصيانة.

03

أي آلية في Laravel 12 تتولى إدارة تجميع المسارات والعروض والأحداث بشكل مباشر ومنظم؟

توفر طبقة إطار العمل وحاوية الخدمات في Laravel 12 الأدوات القياسية لإدارة تجميع المسارات والعروض والأحداث.

04

لماذا يُعد تطبيق التحسين الشامل عبر أمر optimize مهماً عند بناء تطبيقات Laravel 12 جاهزة للإنتاج؟

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

05

في Laravel 12، يُنصح بكتابة مفاتيح الإنتاج السرية مباشرة داخل ملفات الكود المصدري المرفوعة إلى Git بدلاً من ملفات البيئة.

خطأ؛ يجب حفظ المفاتيح والبيانات السرية في متغيرات البيئة وعدم رفعها أبداً إلى مستودع Git.

06

ما المزايا الهندسية التي يحققها تطبيق بناء وضغط أصول الواجهة للإنتاج في Laravel 12؟ (اختر كل ما ينطبق)

يوفر فصلاً واضحاً للمسؤوليات، وأماناً أعلى أثناء التنفيذ، وتعاوناً أسهل بين أفراد الفريق.

07

يوظف إطار العمل Laravel 12 ميزات PHP 8 الحديثة مثل تحديد أنواع القيم المرجعة لجعل الكود أكثر وضوحاً وأماناً.

صواب؛ يعتمد Laravel 12 بشكل كامل على الصياغة الحديثة للغة PHP 8.2+ وسلامة الأنواع.

08

ما الفرق الجوهري بين معيار Laravel 12 الحديث والملفات اليدوية التقليدية في مرجع أوامر تحسين الأداء للإنتاج؟

يوفر Laravel 12 واجهات قياسية موحدة وحماية مدمجة تغني عن الكود اليدوي المعرض للأخطاء.