I'm always excited to take on new projects and collaborate with innovative minds.

Phone

+20 115 052 9992

Website

https://ibrahimahmed.online/

Social Links

هيكل مجلدات لارافيل 11 و 12: رحلة التبسيط والاحترافية

هيكل مجلدات لارافيل 11 و 12: رحلة التبسيط والاحترافية لو كنت مبرمج لارافيل (Laravel) قديم، أكيد أول ما فتحت مشروع جديد في إصدار 11 أو 12 اتصدمت! فين ملفات الـ (

هيكل مجلدات لارافيل 11 و 12: رحلة التبسيط والاحترافية
Reading Count: 4

هيكل مجلدات لارافيل 11 و 12: رحلة التبسيط والاحترافية

لو كنت مبرمج لارافيل (Laravel) قديم، أكيد أول ما فتحت مشروع جديد في إصدار 11 أو 12 اتصدمت! فين ملفات الـ (Config)؟ وفين الـ (Kernel)؟ وفين مجلدات الـ (Middleware) الكتيرة اللي كانت بتلخبطنا؟ الحقيقة إن فريق لارافيل عملوا نقلة نوعية عشان يخلوا المشروع (Lean) وخفيف، ودي خطوة ممتازة لزيادة الإنتاجية وتقليل التشتت.

ليه لارافيل غيرت هيكل المجلدات (Directory Structure)؟

في الإصدارات القديمة، كان مجلد المشروع مليان ملفات إعدادات (Configuration files) ومجلدات إضافية كتير المطور المبتدئ مش بيلمسها في 90% من وقته. الهدف من التغيير ده هو "التبسيط" (Simplicity) وتوفير تجربة تطوير أسرع. دلوقتي، لارافيل بتعتمد على نظام الـ (Bootstrap) الجديد اللي بيجمع كل شيء في مكان واحد.

ملف bootstrap/app.php: العقل المدبر للمشروع

بدل ما تدور على الـ (Kernel) عشان تضيف (Middleware) أو تعدل في الـ (Routing)، لارافيل دلوقتي نقلت كل ده لملف واحد وهو bootstrap/app.php. ده الملف اللي بيتحكم في كل إعدادات التطبيق. خليني أوريك إزاي تضيف (Middleware) مخصص:


return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        commands: __DIR__.'/../routes/console.php',
        health: '/up',
    )
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->web(append: [
            \App\Http\Middleware\HandleInertiaRequests::class,
        ]);
    })
    ->create();

زي ما أنت شايف، الموضوع بقى (Fluent) ومباشر جداً، مفيش حاجة تانية تدور عليها، كل حاجة بتتم من خلال الـ (Configuration chaining).

اختفاء ملفات الإعدادات (Config) التقليدية

ممكن تسأل: "طب فين ملفات الـ config/app.php أو config/database.php؟". الإجابة هي إنها لسه موجودة، لكنها بقت مخفية أو تقدر تقول "اختيارية". لارافيل دلوقتي بتعتمد على (Environment Variables) بشكل أكبر، ولو حبيت تعدل أي إعداد، لارافيل بتشجعك إنك تعتمد على القيم الافتراضية، ولو احتجت تعديل خاص، تقدر تعمل (Publish) لملفات الإعدادات دي بكل سهولة باستخدام أمر php artisan config:publish.

التعامل مع الـ Routing والـ Controllers

في الإصدارات الجديدة، لارافيل خلت الـ (Controller) هو النجم. ومجلد app/Http/Controllers بقى أنظف بكتير. كمان الـ (Routing) بقى بياخد تركيز أكبر في ملف routes/web.php. لارافيل بقت بتشجع المطورين إنهم يستخدموا الـ (Route Groups) بشكل ذكي عشان ينظموا المشروع بدل ما المجلدات تكون هي وسيلة التنظيم الوحيدة.

نصيحة من أخ لمبرمج زيك

التغيير ده في الأول ممكن يحسسك إنك "تايه" خصوصاً لو متعود على الهيكل القديم، بس صدقني، بعد أسبوع واحد من الشغل على لارافيل 11 أو 12، هتحس إنك كنت مضيع وقتك في إدارة الملفات. نصيحتي ليك: ما تحاولش تقاوم التغيير، اقرأ الـ (Documentation) الرسمي بتركيز، وجرب تنقل مشروع قديم للهيكل الجديد، ده أفضل تمرين يخليك محترف في التعامل مع (Framework Architecture).

خليك دايماً متابع التحديثات، ولارافيل دايماً بتبهرنا بحلول بتخلينا نركز على "كتابة الكود اللي بيحل المشكلة" مش "إدارة ملفات المشروع". بالتوفيق في مشاريعك الجاية!


Share

Related posts

Jun 13, 2026 • 1 min read
Reading Count: 6
إزاي تعمل CLI Tools احترافية وتسهل حياتك مع Laravel Prompts

إزاي تعمل CLI Tools احترافية وتسهل حياتك مع Laravel Prompts أكيد مريت بالموقف ده: بتبني مشروع كبير،...

Jun 12, 2026 • 1 min read
Reading Count: 4
إزاي تبني أدوات تيرمينال احترافية باستخدام Laravel Prompts

إزاي تبني أدوات تيرمينال احترافية باستخدام Laravel Prompts أكيد مريت بالموقف ده: بتبني سكريبت أتمتة...

Jun 12, 2026 • 1 min read
Reading Count: 9
أسرار رفع أداء Laravel Pulse: إزاي تراقب سيرفراتك تحت الضغط العالي من غير ما تستهلك الميموري؟

أسرار رفع أداء Laravel Pulse: إزاي تراقب سيرفراتك تحت الضغط العالي من غير ما تستهلك الميموري؟ أكيد م...