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

إعدادات تطبيق Laravel ومتغيرات ملف البيئةLaravel Configuration and Environment Variables

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

يعمل التطبيق الحديث عبر بيئات متعددة تشمل جهاز المطور المحلي وخادم الاختبار وخادم الإنتاج الفعلي، وتحتاج كل بيئة إلى بيانات اتصال ومفاتيح سرية مختلفة. يحفظ Laravel هذه القيم الخاصة بكل خادم داخل ملف .env الجذري المستبعد من Git لضمان عدم تسرب كلمات المرور إلى المستودع البرمجي.

  • ملف البيئة الفعلي (.env File): يخزن القيم السرية المحلية مثل كلمات مرور قواعد البيانات ومفاتيح الربط.
  • قالب البيئة الاسترشادي (.env.example Template): يُرفع إلى Git بقيم افتراضية فارغة لتوضيح المتغيرات المطلوبة للفريق.
  • الحماية من التسريب (Zero Git Exposure): يمنع ملف .gitignore رفع ملف .env أو نسخه الاحتياطية نهائياً.
مخطط معماري يوضح إعدادات تطبيق Laravel ومتغيرات ملف البيئة في إطار العمل Laravel 12
PHP
# Standard environment variables inside .env
APP_NAME="CloseTag Academy"
APP_ENV=local
APP_KEY=base64:Generates32ByteRandomKeyHere=
APP_DEBUG=true
APP_URL=http://localhost

تقرأ ملفات الإعدادات داخل مجلد config/ متغيرات البيئة الخام وتحولها إلى مصفوفات PHP منظمة يسهل الوصول إليها في أنحاء النظام. وفي كود التطبيق، يجب دائماً قراءة هذه القيم عبر الدالة المساعدة config بالصيغة النقطية مثل config('app.timezone') مع إمكانية تمرير قيمة افتراضية آمنة.

  • الصيغة النقطية (Dot Notation Syntax): تبدأ باسم الملف متبوعاً بمفتاح المصفوفة مثل app.name.
  • القيمة الافتراضية البديلة (Fallback Default): تمرير معامل ثانٍ يضمن إرجاع قيمة آمنة عند غياب المفتاح.
  • التعديل المؤقت بالذاكرة (Runtime Override): تمرير مصفوفة للدالة يغير قيمة الإعداد خلال دورة الطلب الحالية فقط.
PHP
<?php
// Reading configuration values with dot notation
$siteName = config('app.name', 'CloseTag');
$timezone = config('app.timezone', 'UTC');

// Overriding a value for the current request
config(['app.locale' => 'ar']);
echo $siteName . ' - ' . config('app.locale');

يتحكم متغيران أساسيان في الأمان المباشر لكل تطبيق Laravel وهما مفتاح التشفير APP_KEY ووضع التصحيح APP_DEBUG. يُولَّد مفتاح التشفير عشوائياً بطول 32 بايت عبر الأمر key:generate لتشفير الجلسات والكوكيز، بينما يجب ضبط APP_DEBUG على القيمة false في بيئة الإنتاج لمنع ظهور تفاصيل الكود والمسارات للزوار.

  • توليد مفتاح التشفير (key:generate Command): ينشئ مفتاحاً عشوائياً بمعيار AES-256 ويكتبه داخل ملف .env.
  • تفعيل التصحيح محلياً (Local Debug True): يعرض تفاصيل الأخطاء البرمجية لتسهيل إصلاحها أثناء التطوير.
  • إغلاق التصحيح بالإنتاج (Production Debug False): يخفي المسارات الداخلية ومتغيرات النظام خلف رسالة خطأ عامة وآمنة.
PHP
# Generate a secure 32-byte application encryption key
php artisan key:generate

# Production .env security baseline:
# APP_ENV=production
# APP_DEBUG=false

يمكن لكود التطبيق التحقق من بيئة التشغيل الحالية بدقة عبر استدعاء الدالة App::environment التي تقرأ قيمة APP_ENV. ومن سطر الأوامر، يعرض الأمر php artisan about لوحة فحص شاملة توضح حالة البيئة وحالة التخزين المؤقت والمحركات المفعلة في المشروع.

  • فحص بيئة محددة (Current Environment): تمرير اسم البيئة مثل local للتحقق قبل تنفيذ كود خاص بالتطوير.
  • فحص عدة بيئات (Multiple Environments): تمرير مصفوفة أسماء للتحقق من كون التطبيق في بيئة محلية أو تجريبية.
  • لوحة فحص النظام (Artisan About CLI): تنفيذ php artisan about لمراجعة حالة التصحيح والتخزين المؤقت والمحركات.
PHP
<?php
use Illuminate\Support\Facades\App;

$currentEnv = App::environment();
$isDev = App::environment(['local', 'staging']);

echo $currentEnv . ' | Dev: ' . ($isDev ? '1' : '0');

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

  • أمر دمج الإعدادات (config:cache Command): يجمع كافة مصفوفات الإعدادات في ملف واحد سريع التحميل بالإنتاج.
  • أمر مسح الكاش (config:clear Command): يحذف ملف الإعدادات المدمج لتعود التعديلات المحلية في .env للعمل.
  • القاعدة الذهبية (Golden Rule of env): استدعِ دالة env داخل ملفات config/ فقط، واستخدم دالة config في بقية الكود.
PHP
# Compile all configuration files for production speed
php artisan config:cache

# Clear cached configuration during local development
php artisan config:clear

يضمن التمييز الواضح بين متغيرات البيئة في .env ومصفوفات الإعدادات في config/ بقاء تطبيقك آمناً وسريع الأداء في بيئة الإنتاج. لخصنا في هذا القسم أهم الفروق الهندسية بين الدالتين وأوامر الإدارة اليومية.

وجه المقارنة الهندسيالأسلوب اليدوي أو التقليديمعيار Laravel 12 الحديث
حفظ البيانات السريةكتابة كلمات مرور قاعدة البيانات مباشرة داخل ملفات الكودعزل كافة المفاتيح السرية في ملف .env المستبعد من مستودع Git
قراءة الإعدادات بالكوداستدعاء متغيرات عامة أو ثوابت مبعثرة في صفحات المشروعقراءة منظمة بالصيغة النقطية عبر الدالة config('file.key')
الأداء في بيئة الإنتاجإعادة قراءة وتحليل ملفات الإعدادات النصية مع كل طلب زائردمج كافة الإعدادات بملف واحد فائق السرعة بأمر config:cache
حماية رسائل الخطأترك عرض الأخطاء البرمجية مفعلاً أمام المستخدمين في الموقع الحيضبط APP_DEBUG=false في الإنتاج لإخفاء التفاصيل التقنية الحساسة
PHP
<?php
// Correct pattern inside application logic:
$appName = config('app.name');
$debugOn = config('app.debug');

echo $appName . ' | Debug: ' . ($debugOn ? '1' : '0');
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

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

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

أتقنت في هذا الدرس حول «إعدادات تطبيق Laravel ومتغيرات ملف البيئة» مفاهيم متغيرات البيئة داخل ملف .env، وقراءة الإعدادات عبر دالة config، ومفتاح التشفير ووضع التصحيح Debug وفق معايير Laravel 12 الحديثة.

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

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

مشاركة

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

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

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

المصطلحات4

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

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Environment Config ملف البيئة
إدارة الإعدادات الحساسة في ملف البيئة .env وقراءتها عبر config وتوليد مفتاح التشفير APP_KEY وإغلاق وضع التصحيح في الإنتاج.
للمراجعة
02 Environment Variables in dotenv متغيرات البيئة داخل ملف .env
المفهوم الهندسي والتطبيق العملي المباشر لقسم متغيرات البيئة داخل ملف .env في إطار العمل Laravel 12.
للمراجعة
03 Reading Values with config Helper قراءة الإعدادات عبر دالة config
المفهوم الهندسي والتطبيق العملي المباشر لقسم قراءة الإعدادات عبر دالة config في إطار العمل Laravel 12.
للمراجعة
04 Application Key and Debug Mode مفتاح التشفير ووضع التصحيح Debug
المفهوم الهندسي والتطبيق العملي المباشر لقسم مفتاح التشفير ووضع التصحيح Debug في إطار العمل 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. اكتب ونفّذ المثال البرمجي المشروح في قسم «متغيرات البيئة داخل ملف .env» داخل مشروع Laravel 12 المحلي وتحقق من النتيجة.

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

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

مساحة التحدي

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

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

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

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

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

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

ما الهدف الهندسي الأساسي من متغيرات البيئة داخل ملف .env في إطار العمل Laravel 12؟

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

02

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

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

03

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

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

04

لماذا يُعد تطبيق فحص بيئة التشغيل الحالية للتطبيق مهماً عند بناء تطبيقات Laravel 12 جاهزة للإنتاج؟

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

05

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

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

06

ما المزايا الهندسية التي يحققها تطبيق تخزين الإعدادات مؤقتاً بالأوامر في Laravel 12؟ (اختر كل ما ينطبق)

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

07

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

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

08

ما الفرق الجوهري بين معيار Laravel 12 الحديث والملفات اليدوية التقليدية في مقارنة دالة env ودالة config؟

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