ملف .env
يحمل الإعدادات الحسّاسة والمتغيّرة بين البيئات (تطوير/إنتاج). لا يُرفع إلى Git:
APP_NAME="تطبيقي"
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=myapp
DB_USERNAME=root
DB_PASSWORD=secret
⚠️
.envفي.gitignoreافتراضيًّا. شارك.env.example(بلا أسرار) ليعرف الفريق المتغيّرات المطلوبة.
ملفّات config
في مجلّد config/، تقرأ من .env وتنظّم الإعدادات منطقيًّا:
<?php
// config/app.php
return [
'name' => env('APP_NAME', 'Laravel'),
'timezone' => 'Asia/Amman',
];
الوصول للإعدادات
<?php
// في أي مكان بالتطبيق
$name = config('app.name');
$timezone = config('app.timezone');
?>
💡 قاعدة مهمّة: استخدم
env()داخل ملفّاتconfig/فقط. في باقي التطبيق استخدمconfig()— لأن Laravel يخزّن الإعدادات مؤقّتًا في الإنتاج فتتوقّفenv()عن العمل خارج config.
إعداد قاعدة البيانات
عدّل قيم DB_* في .env، ثم تحقّق:
php artisan migrate
لو نجحت الهجرة، فالاتصال يعمل.
أوضاع التصحيح
APP_DEBUG=true # في التطوير: يعرض تفاصيل الأخطاء
APP_DEBUG=false # في الإنتاج: يخفيها (أمان)
⚠️ اجعل
APP_DEBUG=falseفي الإنتاج دائمًا — كشف الأخطاء التفصيلية ثغرة أمنية.
أخطاء شائعة
- استخدام
env()خارجconfig/فتعودnullفي الإنتاج المخزَّن مؤقّتًا. - ترك
APP_DEBUG=trueفي الإنتاج.
🎯 التالي: الوسائط (Middleware).