دليل هيكل مشروع Laravel

مرجع كامل للمجلدات والملفات في مشروع Laravel

 

جدول المحتويات

1. نظرة عامة على المشروع

يتبع Laravel بنية مجلد منظمة جيدًا تفصل بين الجوانب المختلفة لتطبيقك. هذا الهيكل يساعد على الحفاظ على كود نظيف ومنظم ويتبع أفضل الممارسات في الصناعة.

my-laravel-project/
├── app/
│ ├── Console/
│ ├── Exceptions/
│ ├── Http/
│ │ ├── Controllers/
│ │ ├── Middleware/
│ │ └── Requests/
│ ├── Models/
│ └── Providers/
├── bootstrap/
├── config/
├── database/
├── public/
├── resources/
├── routes/
├── storage/
└── tests/

2. app/ – نواة التطبيق

يحتوي مجلد app/ على الكود الأساسي لتطبيقك.

Console/

يحتوي على أوامر Artisan المخصصة. يمكنك إنشاء أمر جديد باستخدام:

php artisan make:command SendEmails

Exceptions/

يحتوي على معالج الاستثناءات وأي استثناءات مخصصة تنشئها.

Http/

يحتوي على وحدات التحكم (Controllers)، والوسيطات (Middleware)، وطلبات النماذج (Form Requests).

Controllers/

جميع وحدات التحكم الخاصة بك توضع هنا. لإنشاء وحدة تحكم:

php artisan make:controller UserController

Middleware/

يوفر آلية لتصفية الطلبات HTTP. لإنشاء Middleware:

php artisan make:middleware CheckAge

Requests/

تُستخدم لطلب التحقق من صحة المدخلات. لإنشاء واحدة:

php artisan make:request StoreUserRequest

Models/

تحتوي على نماذج Eloquent الخاصة بك. لإنشاء نموذج:

php artisan make:model User

Providers/

مقدمو الخدمات مسؤولون عن تهيئة التطبيق. لإنشاء Provider:

php artisan make:provider CustomServiceProvider

3. bootstrap/

يحتوي على ملف app.php لتهيئة الإطار، ومجلد cache/ الذي يحتوي على ملفات التخزين المؤقت لتحسين الأداء.

4. config/

يحتوي على جميع ملفات إعدادات التطبيق. من الملفات المهمة:

  • app.php – إعدادات التطبيق الأساسية
  • database.php – إعدادات قاعدة البيانات
  • auth.php – إعدادات المصادقة
  • mail.php – إعدادات البريد الإلكتروني

5. database/

يحتوي على التهجيرات (migrations)، والمُعبئات (seeders)، والمصانع (factories).

Migrations/

تُستخدم لإدارة بنية قاعدة البيانات. لإنشاء واحدة:

php artisan make:migration create_users_table

Seeders/

تُستخدم لملء الجداول ببيانات وهمية. لإنشاء Seeder:

php artisan make:seeder UsersTableSeeder

Factories/

تُستخدم لإنشاء بيانات للاختبارات. لإنشاء Factory:

php artisan make:factory UserFactory

6. public/

مجلد الجذر لخادم الويب ويحتوي على:

  • index.php – نقطة الدخول للتطبيق
  • الملفات العامة (CSS، JavaScript، الصور)

7. resources/

يحتوي على القوالب (views)، والملفات الأصلية (JS، SASS، إلخ)، وملفات اللغة.

views/

قوالب Blade. أنشئ القوالب ضمن مجلدات فرعية مناسبة.

js/

ملفات JavaScript (تُستخدم غالبًا مع Laravel Mix).

lang/

ملفات اللغة لتهيئة الترجمة.

8. routes/

يحتوي على تعريفات المسارات:

  • web.php – للمسارات الخاصة بالويب (جلسات، حماية CSRF)
  • api.php – لمسارات الـ API (محدودة بالطلبات)
  • console.php – لأوامر Artisan
  • channels.php – لقنوات بث الأحداث

9. storage/

يحتوي على:

  • app/ – لتخزين الملفات المُنشأة
  • framework/ – ملفات الإطار المؤقتة
  • logs/ – سجلات التطبيق

10. tests/

يحتوي على اختبارات PHPUnit. لإنشاء اختبار:

php artisan make:test UserTest

11. ملفات أخرى مهمة

  • .env – إعدادات بيئة العمل
  • composer.json – تبعيات PHP
  • package.json – تبعيات الواجهة الأمامية
  • artisan – واجهة الأوامر الخاصة بـ Laravel
  • webpack.mix.js – إعدادات Laravel Mix