أسئلة مقابلات PHP & Laravel مع الإجابات
103 سؤال من أسئلة مقابلات العمل في PHP & Laravel، مقسمة على 10 موضوعات: PHP Core Fundamentals وOOP & Design Patterns in PHP وModern PHP 8.x Features وLaravel Core Architecture & Lifecycle وEloquent ORM & Database Design وRESTful APIs & Authentication وSecurity, OWASP & Hardening وQueues, Jobs & Background Workers وCaching & Performance Optimization وTesting & Quality Assurance. تغطي الأسئلة المستويات مبتدئ ومتقدم ومتوسط، ولكل سؤال إجابة مختصرة تقولها في الانترفيو، وشرح أعمق، وأخطاء شائعة، وروابط للمصادر الرسمية مع تاريخ آخر مراجعة.
الموضوعات
PHP Core Fundamentals
10 سؤال
OOP & Design Patterns in PHP
12 سؤال
Modern PHP 8.x Features
10 سؤال
Laravel Core Architecture & Lifecycle
11 سؤال
Eloquent ORM & Database Design
10 سؤال
RESTful APIs & Authentication
10 سؤال
Security, OWASP & Hardening
10 سؤال
Queues, Jobs & Background Workers
10 سؤال
Caching & Performance Optimization
10 سؤال
Testing & Quality Assurance
10 سؤال
أسئلة مقابلات PHP Core Fundamentals في PHP & Laravel
- ما الفرق بين Type Juggling وموجه declare(strict_types=1) في PHP؟
- ما الفرق بين عامل المقارنة == (Equal) وعامل التطابق === (Identical) في PHP 8+؟
- كيف يعمل OPcache وما دور مجمع JIT (Just-In-Time) الذي أضيف في PHP 8؟
- كيف تدير PHP الذاكرة باستخدام عد المراجع (Reference Counting) ونظام جمع الدورات (Cycles Collection)؟
- ما الفرق بين عامل Null Coalescing (??) وعامل Nullsafe Operator (?->) في PHP الحديثة؟
- ما هي المولدات (Generators) وكيف توفر كلمة yield استهلاك الذاكرة عند قراءة البيانات الضخمة؟
- كيف تطور التسلسل الهرمي للأخطاء والاستثناءات تحت واجهة Throwable في PHP الحديثة؟
- كيف تعمل الجلسات (Sessions) في PHP وما هي مشكلة قفل الجلسة (Session Locking) وكيف تحلها؟
- ما الفرق بين الدوال المجهولة (Closures) ودوال الأسهم (Arrow Functions fn()) في PHP؟
- كيف تعمل بنية PHP-FPM وما الفرق بين أوضاع إدارة العمليات: static و dynamic و ondemand؟
أسئلة مقابلات OOP & Design Patterns in PHP في PHP & Laravel
- كيف تختصر ميزة Constructor Property Promotion كتابة الفئات في PHP 8+؟
- ما هي فئات Readonly Classes في PHP 8.2 وكيف تعزز مبدأ كائنات القيمة غير القابلة للتعديل (Value Objects)؟
- كيف تحل تعارض أسماء الدوال عند استخدام سمات Traits متعددة في PHP؟
- ما هي الدوال السحرية (Magic Methods) الأساسية في PHP وما هو دور __get و __set و __call؟
- متى تختار واجهة برمجة (Interface) ومتى تختار فئة مجردة (Abstract Class) في تصميم كود PHP؟
- ما الفرق الجوهري بين كلمة self وكلمة static في استدعاءات الـ Late Static Binding بـ PHP؟
- ما هي الفئات المجهولة (Anonymous Classes) ومتى يتم استخدامها في PHP؟
- كيف تعمل الدالة السحرية __invoke ودالة __clone وما هو النسخ العميق (Deep Copy)؟
- كيف تختلف معاملات الكائنات (Objects by Reference) عن المتغيرات العادية في تمرير دوال PHP؟
- كيف تستخدم حزم الـ Service Containers واجهة Reflection API في PHP لتحقيق الـ Auto-wiring؟
- ما هو نمط Action-Domain-Responder (ADR) وكيف يحل مشكلة المتحكمات المتضخمة (Fat Controllers)؟
- ما هي إيجابيات وسلبيات تطبيق نمط المستودع (Repository Pattern) فوق Eloquent في Laravel؟
أسئلة مقابلات Modern PHP 8.x Features في PHP & Laravel
- ما هي مزايا تعبير match في PHP 8 مقارنة بجملة switch الكلاسيكية؟
- ما هي السمات (Attributes) في PHP 8+ وكيف تفوقت على تعليقات PHPDoc القديمة؟
- كيف تعمل التعدادات (Enums) في PHP 8.1 وما الفرق بين Pure Enums و Backed Enums؟
- ما هي المعاملات المسماة (Named Arguments) في PHP 8 وما فائدتها مع الدوال متعددة الخيارات؟
- ما هي ألياف Fibers في PHP 8.1 وكيف تتيح تنفيذ الكود غير المتزامن (Async Concurrency)؟
- ما الفرق بين أنواع الاتحاد (Union Types) وأنواع التقاطع (Intersection Types) في PHP 8+؟
- ما هي صياغة First-Class Callables الممثلة بـ (...) في PHP 8.1 وكيف تحسن كتابة الـ Callbacks؟
- ما هي دوال النصوص الحديثة str_contains و str_starts_with و str_ends_with في PHP 8؟
- ما هو FrankenPHP وكيف يغير نمط تشغيل تطبيقات PHP التقليدي عبر وضع Worker Mode؟
- ما هي سمة #[\Override] المضافة في PHP 8.3 وما أهميتها في حماية الوراثة؟
أسئلة مقابلات Laravel Core Architecture & Lifecycle في PHP & Laravel
- ما هي دورة حياة الطلب (Request Lifecycle) في Laravel من لحظة وصوله لـ public/index.php وحتى خروج الاستجابة؟
- ما الفرق بين bind و singleton و scoped في Service Container الخاص بـ Laravel؟
- ما الفرق بين دالتي register() و boot() في Service Providers بـ Laravel ومتى تستخدم كلاً منهما؟
- كيف تعمل واجهات Facades في Laravel داخلياً وما دور دالة getFacadeAccessor؟
- كيف يعزز Laravel Octane أداء التطبيقات وما هي مخاطر تسريب الحالة في الذاكرة (State Leaks)؟
- كيف ينفذ Laravel نمط خط الأنابيب (Pipeline) في الـ Middlewares وما هي واجهة TerminableMiddleware؟
- لماذا لا يجب استدعاء دالة env() مطلقاً خارج ملفات مجلد config/ في مشاريع Laravel؟
- ما الفرق بين Event Listeners العادية و Event Subscribers في Laravel؟
- كيف تصمم أوامر Artisan المخصصة وجدولتها تلقائياً عبر Laravel Task Scheduler؟
- كيف تغيرت بنية إقلاع التطبيق في Laravel 11 بإلغاء الـ Http Kernel ودمج التكوين في bootstrap/app.php؟
- ما هي المتطلبات المعمارية لجعل تطبيق Laravel عديم الحالة (Stateless) وقابلاً للتوسع الأفقي (Horizontal Scaling)؟
أسئلة مقابلات Eloquent ORM & Database Design في PHP & Laravel
- ما هي مشكلة N+1 في استعلامات Eloquent وكيف تقضي عليها باستخدام Eager Loading؟
- كيف تعمل العلاقات متعددة الأشكال (Polymorphic Relationships) في Eloquent وما مخاطر تخزين أسماء الفئات؟
- ما الفرق بين Local Scopes و Global Scopes في نماذج Eloquent وكيف تطبق كلاً منهما؟
- كيف تطور نظام التحويل (Casts) في Laravel وما الفرق بين مصفوفة $casts ودالة casts() الجديدة؟
- قارن بين chunk و chunkById و lazy و cursor عند معالجة ملايين السجلات في Eloquent.
- كيف تنفذ عمليات الإدخال والتحديث الشاملة (Upsert) بكفاءة في Eloquent في استعلام واحد؟
- ما هي أحداث النماذج (Eloquent Events) وما دور الـ Observers في تنظيم منطق الأعمال؟
- كيف تعمل ميزة الحذف اللين (Soft Deletes) في Laravel وما هو أثرها على فهارس قواعد البيانات؟
- كيف تدير معاملات قواعد البيانات بـ DB::transaction وكيف تتعامل مع أخطاء الأقفال الميتة (Deadlocks)؟
- متى تلجأ لاستخدام DB::raw وما هي الاحتياطات الأمنية الإلزامية لتجنب SQL Injection؟
أسئلة مقابلات RESTful APIs & Authentication في PHP & Laravel
- ما هي API Resources في Laravel ولماذا تعد أفضل من إرجاع نماذج Eloquent كـ JSON مباشرة؟
- كيف تعزل منطق التحقق والصلاحيات في فئات Form Requests بـ Laravel؟
- ما هي أفضل استراتيجيات تطبيق ترقيم الإصدارات (API Versioning) في أنظمة Laravel؟
- كيف تصمم محددات معدل الطلبات (Rate Limiting) المتقدمة باستخدام فئة RateLimiter في Laravel؟
- ما هي أفضل الممارسات لاختيار رموز حالة HTTP (Status Codes) في واجهات الـ RESTful API؟
- ما الفرق الجوهري بين LengthAwarePagination و CursorPagination في واجهات برمجة التطبيقات؟
- كيف تصمم معالج أخطاء مركزي وموحد لاستجابات الـ API في Laravel؟
- كيف تطبق مفاتيح عدم التكرار (Idempotency Keys) في واجهات الدفع وإنشاء الطلبات بـ Laravel؟
- قارن بين حزمة Laravel Sanctum وحزمة Laravel Passport ومتى تختار كلاً منهما؟
- كيف تضبط إعدادات CORS في ملف config/cors.php وتتجنب الأخطاء الشائعة مع تطبيقات SPA؟
أسئلة مقابلات Security, OWASP & Hardening في PHP & Laravel
- كيف تعمل حماية CSRF في Laravel وما سبب خطأ 419 Page Expired وكيف تعالجه؟
- ما هي ثغرة الإسناد الشامل (Mass Assignment) وما الفرق بين $fillable و $guarded في Eloquent؟
- كيف يدير Laravel تشفير كلمات المرور باستخدام واجهة Hash Facade؟
- ما الفرق بين البوابات (Gates) والسياسات (Policies) في إدارة الصلاحيات بـ Laravel؟
- كيف تحمي Eloquent و Query Builder تطبيقات Laravel من ثغرات SQL Injection؟
- كيف يحمي محرك Blade من هجمات XSS وما الفرق بين {{ $data }} و {!! $data !!}؟
- ما هي القواعد الأمنية الصارمة لرفع وتخزين الملفات في Laravel؟
- ما هو دور مفتاح APP_KEY في Laravel وما خطورة تغييره أو كشفه في الإنتاج؟
- ما هي الروابط الموقعة (Signed URLs) في Laravel ومتى تستخدم لحماية العمليات الحساسة؟
- كيف تطبق سياسة أمان المحتوى (Content Security Policy) مع الـ Nonce في تطبيقات Laravel؟
أسئلة مقابلات Queues, Jobs & Background Workers في PHP & Laravel
- كيف تعمل طوابير المهام (Queues) في Laravel وما فائدة واجهة ShouldQueue؟
- ما الفرق الجوهري بين أمر php artisan queue:work وأمر queue:listen؟
- كيف يتعامل Laravel مع المهام الفاشلة وما هو دور دالة failed() وسياسة Exponential Backoff؟
- ما الفرق بين تسلسل المهام (Job Chaining) وحزم المهام (Job Batching) في Laravel؟
- ما هي حزمة Laravel Horizon وما المزايا التي تقدمها لمراقبة طوابير Redis وإدارتها؟
- كيف تعالج مشكلة تعليق المهام (Stuck Jobs) وما الفرق بين مهلة $timeout في المهمة و --timeout في العامل؟
- كيف تصمم طوابير متعددة ذات أولويات مختلفة (High, Default, Low) في Laravel؟
- كيف تمنع تكرار تنفيذ نفس المهمة في الطابور باستخدام واجهة ShouldBeUnique في Laravel؟
- كيف تستخدم وسائط المهام (Job Middleware) لتنظيم استدعاء الـ APIs الخارجية ومعدل الاستهلاك؟
- كيف تعد أداة إدارة العمليات Supervisor على خوادم Linux لضمان استمرار عمل عمال Laravel؟
أسئلة مقابلات Caching & Performance Optimization في PHP & Laravel
- قارن بين مشغلات التخزين المؤقت (Cache Drivers) في Laravel: file و database و redis و memcached.
- كيف تعمل دالة Cache::remember وما فائدة الأقفال الذرية (Atomic Locks) في حماية السيرفر؟
- كيف تستخدم وسوم التخزين المؤقت (Cache Tags) وما هي المشغلات التي تدعمها؟
- كيف تطبق التخزين المؤقت للاستجابات (HTTP Caching) وترويسات ETag و Last-Modified في Laravel؟
- ما هي أوامر تحسين الأداء الأساسية (route:cache, view:cache, config:cache) في بيئة الإنتاج؟
- ما هي المخاطر المعمارية لتخزين نتائج استعلامات قواعد البيانات في الكاش وكيف تدير الـ Invalidation؟
- كيف يؤثر مشغل الجلسات (Session Driver) على سرعة وأداء تطبيق Laravel؟
- ما هو الـ Pipelining في Redis وكيف يوفر زمن استجابة الشبكة عند تنفيذ مئات الأوامر بـ Laravel؟
- ما هي خوارزمية انتهاء الصلاحية المبكر الاحتمالي (Probabilistic Early Expiration) لمقاومة تدافع الكاش؟
- كيف تعمل حزم التخزين المؤقت التلقائي لنماذج Eloquent (مثل laravel-model-caching) وما سلبياتها؟
أسئلة مقابلات Testing & Quality Assurance في PHP & Laravel
- ما هو إطار عمل Pest PHP ولماذا أصبح الخيار المفضل لاختبارات Laravel الحديثة على حساب PHPUnit؟
- كيف تكتب اختبارات Feature متكاملة لنقاط نهاية الـ API بـ Laravel وتتحقق من استجابة JSON؟
- ما الفرق بين سمة RefreshDatabase و DatabaseTransactions في اختبارات Laravel؟
- كيف تسهل مصانع النماذج (Model Factories) ومكتبة Faker تجهيز بيانات الاختبار؟
- كيف تستبدل الخدمات والـ Facades بنسخ وهمية (Mocks) في اختبارات Laravel دون كسر النظام؟
- كيف تتحكم في توقيت النظام وتجميد الوقت في اختبارات Laravel الحساسة للمهل الزمنية؟
- كيف تعمل الإشعارات متعددة القنوات (Notifications) في Laravel وكيف تختبرها بـ Notification::fake()؟
- كيف تختبر الـ Jobs والـ Events والبريد في Laravel باستخدام الـ fakes (Queue::fake و Event::fake و Mail::fake)؟
- كيف تختبر المصادقة والتفويض (actingAs و Gates و Policies) في تطبيقات Laravel؟
- كيف تختبر الكود الذي يستدعي واجهات خارجية باستخدام Http::fake ومنع الطلبات الحقيقية؟