Blog
- DB::olap() في Laravel: تقارير PlanetScale الكبيرة بدون حد 100 ألف صف
تتيح DB::olap() في Laravel تشغيل تقارير وتصدير ضخمة على PlanetScale دون حد 100 ألف صف، مع إعادة آمنة للوضع. إليك الشروط والفخ الأهم. إذا كانت قاعدة بياناتك على PlanetScale (المبنية على Vitess)، فربما اصطدمت باستعلام تقرير يعمل بسلاسة على MySQL المحلي ثم ينهار في الإنتاج بسبب حدود...
- Laravel 13.39: أمر session:garbage-collect وموديلات بلا مفتاح أساسي
جديد Laravel 13.39: أمر session:garbage-collect لتنظيف الجلسات بالجدولة، وموديلات بلا مفتاح أساسي، وكتابة آمنة لملفات الكاش. إليك ما تغيّر وكيف تترقّى. صدر الإصدار في 27 أكتوبر 2026.
- Filament 5.8: تحميل الـ Schema المؤجّل بـ deferLoading وأهم الجديد
أضاف Filament 5.8 الدالة deferLoading() لتأجيل تحميل الـ Schema الداخلي، مع حفظ التجميع في الجلسة وhooks بأسماء الـ traits. إليك الجديد وكيف تستفيد منه.
- ثغرات NativePHP Mobile: حدّث إلى 4.6.1 وأعد بناء تطبيقك
نشر فريق NativePHP سبعة تحذيرات أمنية لحزمة nativephp/mobile وإضافة mobile-file. إليك ما تعنيه الثغرات وكيف تحدّث وتعيد بناء تطبيقك قبل نشره من جديد. إذا كنت تبني تطبيقات iOS وAndroid بـ Laravel عبر NativePHP، فهذا التحذير يخصك مباشرة.
- ثغرة TokenGuard الحرجة في Laravel: تحقق من تطبيقك وحدّث الآن
ثغرة TokenGuard في Laravel (CVSS 9.2) تسمح بانتحال أي مستخدم على MySQL وMariaDB. اعرف هل تطبيقك متأثر وكيف تحدّث إلى 12.68 أو 13.29. نشر فريق Laravel في 19 أكتوبر 2026 تحذيرًا أمنيًا بدرجة Critical عن ثغرة في حارس المصادقة TokenGuard، وهو الحارس الذي يعمل عند ضبط 'driver' =>...
- ثغرتا PHP الحرجتان RCE: حدّث إلى 8.5.12 وما يخص Laravel
أصدر فريق PHP في 21 أكتوبر 2026 تحديثًا أمنيًا لـ PHP يعالج ثغرتين حرجتين من نوع RCE (تنفيذ أوامر عن بُعد) بدرجة CVSS 9.2 لكل منهما. إليك الإصدارات المصححة، وما معنى الثغرتين، وخطوات التحديث على Forge وCloud وVapor.
- PreventStaleDatabaseReads في Laravel 13.38: حل قراءة البيانات القديمة بعد الكتابة
ميدلوير PreventStaleDatabaseReads في Laravel 13.38 يمنع المستخدم من رؤية بيانات قديمة بعد حفظ تعديله عندما تفصل قراءة القاعدة عن الكتابة. يحدث ذلك بسبب تأخر النسخ بين القاعدة الرئيسية والـ replica، وهو من أكثر الأخطاء إرباكًا لأنه لا يظهر في بيئة التطوير.
- Laravel 13.37: إصلاح سباق onOneServer وقفل ShouldBeUnique العالق
صدر Laravel 13.37 في 16 أكتوبر بإصلاحين لقفلين كانا يوقفان مهامك بصمت: مهمة مجدولة تُتخطّى على كل الخوادم، وjob فريد لا يُدفع بعد انقطاع الـ queue.
- Rule Builders في Laravel 13.36: قواعد التحقق بدون سلاسل نصية
أضاف Laravel 13.36 دوال Rule:: لكل قاعدة تحقق كانت نصية فقط، فتحصل على autocomplete وأخطاء إملائية تُكتشف مبكرًا وحلٍّ لمشكلة الفاصلة. إذا كتبت يومًا 'required_without:phone|email' ثم قضيت وقتًا تبحث عن سبب فشل التحقق لأنك كتبت required_withot، فهذا التحديث موجّه إليك.
- Cache Stampede في Laravel: كيف تمنع انهيار القاعدة عند انتهاء الكاش
الـ Cache Stampede هو أن ينتهي عمر مفتاح كاش مزدحم فتندفع مئات الطلبات لإعادة حسابه معًا. إليك كيف يحدث في Laravel وكيف تمنعه بـ Cache::flexible وCache::lock.
- Laracon AU 2026 في بريزبين: برنامج المؤتمر وهل يستحق الحضور؟
Laracon AU 2026 يقام في بريزبين من 4 إلى 6 نوفمبر: ورشتان ويومان من الجلسات حول Laravel والذكاء الاصطناعي والاختبارات. إليك البرنامج وما يستحق المتابعة.
- Mass Assignment في Laravel: كيف يصبح المستخدم مديرًا بحقل مخفي
ثغرة Mass Assignment في Laravel تسمح لمستخدم عادي بتعديل أعمدة لم تقصد إتاحتها، مثل is_admin، بمجرد إضافة حقل إلى الطلب. إليك كيف تحدث وكيف تغلقها.
- Laravel AI SDK 1.1: دعم Agent Skills وCohere وموافقة على الأدوات
Laravel AI SDK 1.1 يضيف Agent Skills لتحميل تعليمات الوكيل عند الحاجة فقط، مع دعم Cohere وموافقة بشرية على الأدوات. إليك ما الجديد وكيف تترقّى. إذا بنيت وكيلًا (Agent) بـ Laravel AI SDK فربما وقعت في مشكلة تضخّم الـ system prompt.
- دراسة حالة: كيف حوّلت MCP server داخل مشروعي إلى حزمة Laravel مفتوحة المصدر
الخلاصة: كان لدي سيرفر MCP يدير مدونتي من Claude. استخرجته إلى حزمة Composer عامة هي abdullahdheir/laravel-blog-mcp، ثم ربطت تطبيقي بها بدل الكود الداخلي، ومعي 27 اختبارًا للحزمة وتغطية للـ endpoint الحقيقي.
- خارطة طريق تعلّم Laravel من الصفر: خطوات مرتبة وأخطاء المبتدئين
خارطة طريق تعلّم Laravel للمبتدئين: ترتيب عملي للخطوات من التثبيت حتى الاختبارات، مع الأخطاء الشائعة التي تضيّع وقتك وكيف تتجنبها. كثير من المبتدئين يبدأ بـ Laravel ثم يتوقف بعد أسابيع، ليس لأن الإطار صعب، بل لأنه كبير ولا يعرف من أين يبدأ ولا ماذا يؤجّل.
- نشر Laravel على InfinityFree مجاناً مع MySQL وبدون SSH
دليل نشر Laravel على استضافة InfinityFree المجانية مع MySQL: ما يعمل وما لا يعمل، وتجهيز المشروع محلياً، والرفع بـ FTP، وإعداد .htaccess. استضافة InfinityFree مجانية وتدعم PHP وMySQL، لكنها ليست خادماً تتحكم فيه: لا SSH ولا Composer ولا artisan على الخادم، وجذر الموقع مجلد ثابت...
- نشر Laravel على Render مع Neon: دليل Docker خطوة بخطوة
دليل عملي لنشر تطبيق Laravel على Render بـ Docker مع قاعدة Neon المجانية، مع شرح كل سطر في الـ Dockerfile وأخطاء النشر الحقيقية وحلولها. في هذا الدليل سننشر تطبيق Laravel على Render باستخدام Docker، ونربطه بقاعدة بيانات PostgreSQL مجانية على Neon (أو على Render نفسه كبديل)، مع...
- Laravel 13.35: جدولة على سيرفر واحد وQUERY route وذاكرة الـ Worker
Laravel 13.35 يضيف Schedule::alwaysOnOneServer() ودعم Route::query() ونسبة مئوية لـ --memory. إليك ما يهمّك قبل الترقية وكيف تستفيد منه. صدر Laravel Framework v13.35.0 في 6 أكتوبر بحسب صفحة الإصدارات على GitHub، ويضم عشرات الـ pull requests من أكثر من 30 مساهمًا.
- Idempotency في Laravel: كيف تمنع تكرار الطلبات والدفع مرتين
الـ Idempotency تعني أن تكرار الطلب نفسه لا يغيّر النتيجة عن تنفيذه مرة واحدة. تعلّم كيف تطبّقها في Laravel لمنع تكرار الطلبات والمدفوعات والـ jobs. المستخدم يضغط «ادفع»، فينقطع الاتصال قبل وصول الرد. هل نجحت العملية؟ لا يعرف.
- Laravel 13.34: احتساب انهيار الـ Worker كاستثناء في الـ Queue
Laravel 13.34 يحتسب انهيار الـ worker في الـ queue (نفاد الذاكرة أو segfault) كاستثناء ضمن maxExceptions، ويضيف إشعار المهلة وقياس مدة الـ job. ما الذي صدر في Laravel 13.34؟
- مشكلة N+1 في Laravel: كيف تكتشفها وتحلها قبل أن تصل الإنتاج
مشكلة N+1 في Laravel تحوّل صفحة بسيطة إلى عشرات الاستعلامات دون أن تنتبه. إليك كيف تكتشفها بـ Eloquent وتحلها بالتحميل المسبق ومنعها نهائيًا. صفحة تعمل بسرعة على جهازك ببيانات تجريبية قليلة، ثم تبطؤ في الإنتاج عندما تكبر الجداول.
- PHP 8.6: دالة clamp() وPartial Function Application وكل ما ستغيّره قبل الترقية
ما الجديد في PHP 8.6 المقرر في 19 نوفمبر 2026؟ دالة clamp() وPartial Function Application وتغييرات الجلسات والإهمالات، وما تختبره قبل الترقية.
- Telescope و Log Viewer: كيف تراقب تطبيق Laravel في الإنتاج بأمان
عندما يتعطل تطبيقك في الإنتاج، أول سؤال هو: ماذا حدث بالضبط؟ أداتان تجيبان عن هذا السؤال في Laravel: Telescope وLog Viewer. لكن وضعهما في الإنتاج بلا حماية قد يحوّلهما من أداة مراقبة إلى ثغرة. ما الفرق بينهما؟
- Claude Sonnet 5.5: أسرع وأقل كلفة لكل مهمة، وخمسة تغييرات كاسرة قبل أن تُرقّي
في 28 سبتمبر 2026 أعلنت Anthropic عن Claude Sonnet 5.5 في إعلانها الرسمي، بوصفه ترقية على Sonnet 5. العناوين الكبرى: أسرع بأكثر من 30% في توليد المخرجات، وأقل كلفة بنسبة تصل إلى 30% للمهمة الواحدة بحسب الشركة.
- Laravel AI SDK v1.0: ما الجديد، وما الذي سيتغير في تطبيقك عند الترقية
في 23 سبتمبر 2026 أعلن فريق Laravel، في مقال كتبه Pushpak Chhajed، عن الإصدار المستقر الأول (v1.0) من Laravel AI SDK، وهي واجهة واحدة بأسلوب Laravel للتعامل مع مزودي الذكاء الاصطناعي. بحسب الفريق، أُغلقت مئات الأخطاء منذ المرحلة التجريبية وأُضيفت ميزات كبيرة.
- Laravel Cloud في سبتمبر 2026: بيئة معاينة لكل Pull Request، ومقاييس للطلبات، وتحسينات قواعد البيانات
كلنا مرّ بهذا الموقف: الكود جاهز، والاختبارات تنجح، ثم يسأل أحدهم: «هل أستطيع تجربته؟». أحيانًا تكون الإجابة سهلة، وأحيانًا يكون الـ staging عليه فرع شخص آخر، أو يحتاج المراجع من يساعده لتشغيل المشروع محليًا.
- ملخص سبتمبر 2026 في Laravel Framework: مفاتيح AI لكل Tenant وبحث دلالي وMercure
نشر فريق Laravel في 2 أكتوبر 2026 ملخص تحديثات سبتمبر. هذا المقال يغوص في جزء الـ Framework منه (الذكاء الاصطناعي، والبحث، والوقت الحقيقي، والملفات)، مع شيفرة من سجل التغييرات الرسمي. وللجزء الخاص بـ Laravel Cloud مقال مستقل.
- Inertia.js 3.8: المكوّن WhenMounted ودعم BigInt بالتفصيل
إذا كنت تبني تطبيقًا بـ Inertia مع SSR (العرض من جهة الخادم)، فلا بد أنك رأيت الخطأ المزعج window is not defined عند وضع مكوّن يعتمد على المتصفح في صفحتك. وإذا كان عندك معرفات رقمية ضخمة (مثل Snowflake IDs) فربما لاحظت أن أرقامك «تتغير» وحدها عند وصولها إلى الواجهة.
- القيم الافتراضية الديناميكية في Eloquent: شرح الدالة defaults() القادمة مع Laravel 14
كل من كتب نماذج Eloquent وصل إلى هذه اللحظة: تريد قيمة افتراضية لا تعرفها إلا وقت التشغيل، مثل لغة التطبيق من ملف الإعدادات، أو تاريخ انتهاء فترة تجريبية بعد 14 يومًا من الآن. تفتح الخاصية $attributes فتكتشف أنها لا تقبل إلا قيمًا ثابتة.
- أخبار Laravel والذكاء الاصطناعي — 4 أكتوبر 2026
حصيلة اليوم لمطوري Laravel: ميزة جديدة في Eloquent، وتحديثات Inertia، وملخص سبتمبر لمنتجات Laravel، مع إصدار Laravel AI SDK v1.0 وSonnet 5.5 (وكلاهما أقدم من 48 ساعة).
- كيف تطلع من إنترفيو الـ Backend بالـ Offer وأنت مرتاح؟
تخيل دخلت مقابلة وسألك التكنيكال ليد: "شو بصير ورا الكواليس أول ما المستخدم يكبس على زر 'تأكيد الشراء' في موقع تجاري ضخم؟" لو بدأت إجابتك بـ INSERT INTO orders... ورحت علطول على الداتا بيز، فغالباً أنت خسرت نص العلامة من أول دقيقة!
- توقف عن تحميل علاقات (Relationships) كاملة فقط للحصول على "قيمة واحدة"
أنت تقتل ذاكرة السيرفر (RAM) دون أن تشعر! في كثير من الأحيان نحتاج لعرض قائمة مستخدمين مع "تاريخ آخر طلب" لكل منهم. المبرمج المبتدئ: يستخدم with('orders') ثم max('created_at') في الـ Blade. (كارثة أداء إذا كان لكل مستخدم آلاف الطلبات).
- كيف يمكن لـ "رابط وهمي" أن يجعل مستخدمك ينفذ عمليات حساسة دون علمه؟
مثل تغيير كلمة السر أو تحويل أموال، دون علمه. في الـ Backend، نحن لا نثق فقط بالـ Session، بل يجب أن نتأكد أن الطلب (Request) قادم من صفحتنا "فعلياً". ثغرة Cross-Site Request Forgery تعتمد على استغلال المتصفح لإرسال الكوكيز تلقائياً مع أي طلب للموقع. كيف يحميك Laravel؟
- هل لا تزال تدخل إلى السيرفر لتنفيذ git pull أو ترفع الملفات عبر FTP؟
أنت على بُعد خطأ واحد من توقف النظام بالكامل وخسارة ثقة عملائك. في المشاريع البرمجية الحقيقية، "الكود يعمل على جهازي" ليست ضمانة كافية. الـ CI/CD Pipeline هو الحارس الشخصي لمشروعك: 1️⃣ التكامل المستمر (CI): بمجرد رفع الكود، يتم تشغيل الاختبارات الآلية (Automated Tests).
- هل لا يزال تطبيقك ينفذ المهام "بالطابور" بينما يمكنه تنفيذها "معاً"؟
في Laravel، اعتدنا أن الكود يسير خطوة بخطوة (Synchronous). إذا كنت تطلب بيانات من 3 مصادر خارجية، فالمستخدم سينتظر مجموع وقت الـ 3 طلبات. مع ميزة الـ Concurrency الجديدة، انتقلنا لمستوى آخر من الأداء.
- أكبر فخ يقع فيه مهندس الـ Backend: "هذا الكود سيء، يجب أن نعيد كتابته من الصفر!"
كمطورين، نحب الكود النظيف والمثالي. لكن كمهندسين يعملون في "بزنس حقيقي"، يجب أن نسأل: هل إعادة الكتابة (Rewrite) ستجلب دولاراً واحداً إضافياً للشركة؟ في مشاريع Laravel الضخمة التي عملت عليها، تعلمت أن الـ Refactoring ليس "رفاهية"، بل هو قرار استثماري.
- "الكود شغال 100%!".. إلى أن يقوم مستخدم بتغيير رقم واحد في الرابط ويُحمل فواتير عميل آخر 🚨
من أخطر الثغرات التي أراجعها في أنظمة الـ Backend هي ثغرة الـ IDOR (Insecure Direct Object Reference). ❌ كيف تحدث الكارثة؟ المبرمج يكتب كوداً لجلب فاتورة بناءً على الـ $id المُرسل في الرابط: Invoice::findOrFail($id).