في هذا الدرس 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.
# 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') الآمنة.
// 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 ربط الأحداث بالمستمعات لتجنب فحص الكلاسات في كل طلب.
# 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): يعرض كلا الأمرين قائمة واضحة في الطرفية توضح حالة كل مكون والزمن المستغرق.
# 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 بدلاً من خادم التطوير المحلي.
# 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 |
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
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 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
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 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.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
مهامك قبل الاختبار
خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.
-
اكتب ونفّذ المثال البرمجي المشروح في قسم «تحسين التحميل التلقائي في Composer» داخل مشروع Laravel 12 المحلي وتحقق من النتيجة.
-
بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم «تجميع ملفات الإعدادات بأمر config» وقارن مخرجات التنفيذ.
تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.
اختبر فهمك.
ووصلها للإتقان.
كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.
أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.
الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.
لمحة عن التحدي8 أسئلة تنتظرك +
ما الهدف الهندسي الأساسي من تحسين التحميل التلقائي في Composer في إطار العمل Laravel 12؟
يسهم تحسين التحميل التلقائي في Composer في تنظيم منطق التطبيق بأسلوب معياري آمن وقابل للصيانة في Laravel 12.
يساعد الالتزام باصطلاحات Laravel 12 الرسمية في قسم «تجميع ملفات الإعدادات بأمر config» على رفع جودة الكود وسهولة اختباره آلياً.
صواب؛ الالتزام بالمعايير القياسية في Laravel 12 يجعل الكود واضحاً وسهل الفحص والصيانة.
أي آلية في Laravel 12 تتولى إدارة تجميع المسارات والعروض والأحداث بشكل مباشر ومنظم؟
توفر طبقة إطار العمل وحاوية الخدمات في Laravel 12 الأدوات القياسية لإدارة تجميع المسارات والعروض والأحداث.
لماذا يُعد تطبيق التحسين الشامل عبر أمر optimize مهماً عند بناء تطبيقات Laravel 12 جاهزة للإنتاج؟
لأنه يمنع الأخطاء البرمجية الخفية ويوحد سلوك التطبيق بين بيئتي التطوير والإنتاج.
في Laravel 12، يُنصح بكتابة مفاتيح الإنتاج السرية مباشرة داخل ملفات الكود المصدري المرفوعة إلى Git بدلاً من ملفات البيئة.
خطأ؛ يجب حفظ المفاتيح والبيانات السرية في متغيرات البيئة وعدم رفعها أبداً إلى مستودع Git.
ما المزايا الهندسية التي يحققها تطبيق بناء وضغط أصول الواجهة للإنتاج في Laravel 12؟ (اختر كل ما ينطبق)
يوفر فصلاً واضحاً للمسؤوليات، وأماناً أعلى أثناء التنفيذ، وتعاوناً أسهل بين أفراد الفريق.
يوظف إطار العمل Laravel 12 ميزات PHP 8 الحديثة مثل تحديد أنواع القيم المرجعة لجعل الكود أكثر وضوحاً وأماناً.
صواب؛ يعتمد Laravel 12 بشكل كامل على الصياغة الحديثة للغة PHP 8.2+ وسلامة الأنواع.
ما الفرق الجوهري بين معيار Laravel 12 الحديث والملفات اليدوية التقليدية في مرجع أوامر تحسين الأداء للإنتاج؟
يوفر Laravel 12 واجهات قياسية موحدة وحماية مدمجة تغني عن الكود اليدوي المعرض للأخطاء.