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

هيكلة مجلدات مشروع Laravel وملف Bootstrap AppLaravel Directory Structure and Bootstrap App

استكشاف هيكلة مجلدات Laravel 11/12 المبسطة وكيف يدير ملف bootstrap/app.php إعدادات المسارات والبرمجيات الوسيطة والاستثناءات.
أقسام الدرس
6
الأمثلة
6
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
0
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

تتميز إصدارات Laravel 11 و12 بهيكلة مجلدات جذرية مبسطة للغاية تهدف إلى إبقاء المشروع منظماً وواضحاً مع الاحتفاظ بكامل المرونة الهندسية. يستقر الكود البرمجي في مجلد app/، والمسارات في routes/، والإعدادات في config/، والقوالب في resources/، والملفات التشغيلية في storage/.

  • فصل واضح للمسؤوليات (Separation of Concerns): عزل كود التطبيق عن ملفات الإعدادات والملفات العامة للمتصفح.
  • عزل المكتبات الخارجية (Vendor Isolation): حفظ جميع حزم Composer داخل مجلد vendor/ دون تعديلها يدوياً.
  • مجلد قاعدة البيانات (Database Folder): تجميع ملفات التهجير والبذور والمصانع داخل مجلد database/.
مخطط معماري يوضح هيكلة مجلدات مشروع Laravel وملف Bootstrap App في إطار العمل Laravel 12
PHP
<?php
// Core root folders in a fresh Laravel 12 project
$folders = [
    'app'       => 'Models, Controllers, Providers',
    'bootstrap' => 'Application wiring (app.php)',
    'routes'    => 'Web and console route files',
];
echo $folders['bootstrap'];

يحتضن مجلد app/ الكود الأساسي لمنطق مشروعك ويرتبط مباشرة بفضاء الأسماء App\ وفق معيار التحميل التلقائي PSR-4. في تثبيت Laravel 12 الجديد، يبدأ المجلد بثلاثة مجلدات فرعية فقط هي Http/Controllers وModels وProviders، وتُنشأ المجلدات الإضافية تلقائياً عند توليدها بأوامر Artisan.

  • مجلد المتحكمات (app/Http/Controllers): يضم كلاسات المتحكمات المسؤولة عن معالجة طلبات الويب.
  • مجلد النماذج (app/Models): يحتوي على كلاسات Eloquent التي تمثل جداول قاعدة البيانات.
  • مجلد مزودي الخدمة (app/Providers): يضم ملف AppServiceProvider لتسجيل وتجهيز خدمات النظام.
PHP
<?php
namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider {
    // Core provider inside app/Providers
}

يعتمد الأمان المعماري في Laravel على الفصل الحاسم بين مجلد public/ وبقية مجلدات النظام. يجب توجيه جذر خادم الويب حصرياً نحو مجلد public/ الذي يضم نقطة الدخول index.php والملفات الثابتة، بينما تُحفظ السجلات والقوالب المترجمة والملفات الخاصة بأمان داخل مجلد storage/.

  • نقطة الدخول (public/index.php): الملف الوحيد الذي يستقبل طلبات HTTP ويطلق دورة حياة الإطار.
  • سجلات النظام (storage/logs): يحفظ تقارير الأخطاء والأحداث داخل الملف storage/logs/laravel.log.
  • ملفات الإطار المؤقتة (storage/framework): يخزن القوالب المترجمة وملفات الجلسات والذاكرة المؤقتة.
PHP
<?php
// Structure of public/index.php in Laravel 12
define('LARAVEL_START', microtime(true));

require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';

$app->handleRequest(Illuminate\Http\Request::capture());

يجمع مجلد routes/ كافة مسارات الروابط وأوامر الطرفية، بدءاً من ملف web.php لمسارات المتصفح وملف console.php للمهام المجدولة. وفي المقابل يضم مجلد config/ ملفات مصفوفات PHP منظمة تضبط إعدادات التطبيق، واتصالات قواعد البيانات، والبريد، والذاكرة المؤقتة.

  • مسارات الويب (routes/web.php): يضم مسارات المتصفح المزودة تلقائياً بحماية الجلسات وCSRF.
  • مسارات الطرفية (routes/console.php): يعرف أوامر Artisan المبسطة وجدولة المهام الدورية.
  • ملفات الإعدادات (config/*.php): تعيد مصفوفات ترابطية منظمة تُقرأ بالصيغة النقطية في أنحاء النظام.
PHP
<?php
// Excerpt from config/app.php returning settings
return [
    'name' => env('APP_NAME', 'Laravel'),
    'env' => env('APP_ENV', 'production'),
    'timezone' => 'UTC',
];

يمثل ملف bootstrap/app.php القلب النابض لمعمارية Laravel 11 و12 الحديثة، حيث استبدل ملفات النواة القديمة المتفرقة بواجهة تهيئة موحدة وأنيقة. عبر استدعاء Application::configure، يربط هذا الملف مسارات التوجيه والبرمجيات الوسيطة ومعالجة الاستثناءات في مكان مركزي واحد.

  • بدء التهيئة (Application::configure): يؤسس نسخة التطبيق انطلاقاً من المسار الجذري للمشروع.
  • ربط المسارات (withRouting Method): يسجل ملفات web.php وconsole.php ومسار فحص الجاهزية /up.
  • الوسطاء والاستثناءات (withMiddleware & withExceptions): يدير البرمجيات الوسيطة ومعالجة الأخطاء مركزياً.
PHP
<?php
use Illuminate\Foundation\Application;

return Application::configure(dirname(__DIR__))
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        health: '/up',
    )->create();

يساعد الفهم الدقيق لوظيفة كل مجلد في الحفاظ على نظافة المعمارية البرمجية مع نمو المشروع وإضافة عشرات الميزات الجديدة. يمثل هذا الدليل المرجعي خريطة العمل اليومية عند إنشاء الكلاسات أو حفظ الملفات المرفوعة أو إعداد خوادم النشر.

وجه المقارنة الهندسيالأسلوب اليدوي أو التقليديمعيار Laravel 12 الحديث
حماية جذر الموقعوضع ملفات الإعدادات والاتصال بقاعدة البيانات في المجلد العامحصر جذر الخادم في مجلد public/ وعزل الكود والإعدادات خارجه
تهيئة نواة النظامتوزيع الإعدادات بين Kernel.php وHandler.php وRouteServiceProviderتهيئة مركزية موحدة عبر Application::configure في bootstrap/app.php
كثافة مجلد appعشرات المجلدات الفرعية الفارغة المولدة مسبقاً دون استخدامبنية رشيقة تبدأ بالأساسيات وتولد المجلدات عند الطلب بأوامر Artisan
فحص صحة الخادمبرمجة ملفات فحص يدوية للتأكد من استجابة التطبيقمسار جاهزية مدمج /up مفعل افتراضياً لمراقبة حالة الخادم
PHP
# Inspect application directory paths and status via CLI
php artisan about

# Verify writable cache directory contents
ls bootstrap/cache
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

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

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

أتقنت في هذا الدرس حول «هيكلة مجلدات مشروع Laravel وملف Bootstrap App» مفاهيم نظرة شاملة لمجلدات المشروع الجذرية، ومكونات مجلد الكود الأساسي app، ودور مجلدي public و storage وفق معايير Laravel 12 الحديثة.

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

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

مشاركة

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

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

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

المصطلحات4

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

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Directory Structure هيكلة المجلدات
استكشاف هيكلة مجلدات Laravel 11/12 المبسطة وكيف يدير ملف bootstrap/app.php إعدادات المسارات والبرمجيات الوسيطة والاستثناءات.
للمراجعة
02 Root Project Folders Overview نظرة شاملة لمجلدات المشروع الجذرية
المفهوم الهندسي والتطبيق العملي المباشر لقسم نظرة شاملة لمجلدات المشروع الجذرية في إطار العمل Laravel 12.
للمراجعة
03 Inside the app Directory مكونات مجلد الكود الأساسي app
المفهوم الهندسي والتطبيق العملي المباشر لقسم مكونات مجلد الكود الأساسي app في إطار العمل Laravel 12.
للمراجعة
04 Public and Storage Directories دور مجلدي public و storage
المفهوم الهندسي والتطبيق العملي المباشر لقسم دور مجلدي public و storage في إطار العمل 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. اكتب ونفّذ المثال البرمجي المشروح في قسم «نظرة شاملة لمجلدات المشروع الجذرية» داخل مشروع Laravel 12 المحلي وتحقق من النتيجة.

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

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

مساحة التحدي

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

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

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

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

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

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

ما الهدف الهندسي الأساسي من نظرة شاملة لمجلدات المشروع الجذرية في إطار العمل Laravel 12؟

يسهم نظرة شاملة لمجلدات المشروع الجذرية في تنظيم منطق التطبيق بأسلوب معياري آمن وقابل للصيانة في Laravel 12.

02

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

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

03

أي آلية في Laravel 12 تتولى إدارة دور مجلدي public و storage بشكل مباشر ومنظم؟

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

04

لماذا يُعد تطبيق وظيفة مجلدي routes و config مهماً عند بناء تطبيقات Laravel 12 جاهزة للإنتاج؟

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

05

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

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

06

ما المزايا الهندسية التي يحققها تطبيق تهيئة التطبيق بملف bootstrap/app في Laravel 12؟ (اختر كل ما ينطبق)

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

07

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

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

08

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

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