Laravel 12.21.0 – تحديث ذكي لتسهيل الاستعلامات والتحقق الصارم للبيانات

أغسطس 3, 2025

أصدرت Laravel النسخة 12.21.0 بمزايا برمجية هامة تساهم في كتابة كود أنظف وأسهل في الصيانة. من أهمها دالة whereValueBetween() الجديدة، بالإضافة إلى تشديد قواعد التحقق للبيانات المنطقية والرقمية.

١. دالة whereValueBetween() : استعلام أنيق لقيم بين عمودين

الميزة الجديدة whereValueBetween() بتسهل مقارنة قيمة معينة (زي عمر المستخدم أو رقم الطلب) ما بين قيمتين موجودين في عمودين من الجدول. بدل ما تكتب شرط معقد، دلوقتي تقدر تكتب الكود بالشكل ده:

$users = DB::table('users')
    ->whereValueBetween('age', 'min_age', 'max_age')
    ->get();

قبل كده، كنا بنضطر نكتب استعلام مركب بالشكل التالي:

$users = DB::table('users')
    ->whereColumn('min_age', '<=', 'age')
    ->whereColumn('max_age', '>=', 'age')
    ->get();

لكن باستخدام whereValueBetween() ، الاستعلام بقى أنظف وأسهل في القراءة، وده بيساعدك في كتابة كود أقرب للنية البرمجية (Intent-Driven Code).

٢. التحقق الصارم (Strict Validation): دقة أفضل وسلوك متوقع

واحدة من أهم التحديثات في Laravel 12.21.0 هي تحسين التحقق من القيم باستخدام قواعد 'accepted' و 'numeric' بشكل أكثر صرامة.

تفاصيل التغيير:
  • 'accepted' : لازم تكون القيمة حرفيًا true أو '1' أو 1 . أي قيمة تانية (حتى 'yes' أو 'on' ) مش هتعدي التحقق.
  • 'numeric' : القاعدة بقت ترفض القيم اللي مش رقم حقيقي، زي null أو 'abc' ، حتى لو كانت من نوع String.

الميزة دي بتحميك من البيانات الغلط اللي ممكن تدخل بسبب تهور المستخدم أو ثغرات في الواجهة الأمامية.

٣. تأثير التحديث على المشاريع الحقيقية

المزايا الجديدة بتوفرلك:

  • تقليل الكود المكرر في الاستعلامات المعقدة.
  • تحقق أدق على مدخلات المستخدم، وده بيقلل (bugs) الناتجة عن بيانات غير صالحة.
  • كتابة كود أنظف وأكثر توافقًا مع معايير SOLID وClean Code.

٤. كيف تبدأ في استخدام الميزات دي؟

- تأكد إنك محدث للنسخة 12.21.0 أو أحدث.
- استخدم whereValueBetween() في أي حالة محتاجة مقارنة قيمة مع عمودين.
- راجع قواعد التحقق عندك واستفد من التشديد الجديد في 'accepted' و 'numeric' .

💡 نصيحة احترافية: اختبر الكود بتاعك بعد التحديث باستخدام Unit Tests للتأكد إن كل شيء شغال بنفس السلوك المتوقع.

المدونة

ألوان في CSS - شرح مبسّط

يونيو 26, 2025

ألوان في CSS - شرح مبسّط النهارده هنتكلم عن الألوان في CSS: ازاي بنحددها، وخصوصًا الطرق الحديثة زي lab() وoklch(). 1. يعني إيه لون؟ مفيش حاجة اسم...

حلل مشروع Laravel بـ Introspect

يوليو 01, 2025

حلل كود Laravel باستخدام Laravel Introspect لو بتعمل Refactor كبير أو بتبني أدوات Dev‪، Laravel Introspect بيسمحلك تستعلم عن الكود: فيوز، مودلز، رو...

مقارنة CSS: طبقات vs BEM vs Utility Classes

يونيو 26, 2025

مقارنة CSS: Cascade Layers و BEM و Utility Classes المقالة بتتكلّم عن ٣ طرق لإدارة الـ specificity في CSS &ndash; BEM والـ utility‑first classes وك...

الفرق بين Redux, Context & React Components في إدارة الحالة

أغسطس 06, 2025

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

كيف تجعل موقعك "سريع جداً" خطوة بخطوة

يوليو 30, 2025

لماذا السرعة ليست رفاهية؟ في زمن الضغط والسرعة، ما فيش حد عنده وقت يستنى موقع يحمّل! المستخدمين على الموبايل بينسحبوا من الموقع إذا ما فتحش في أق...

أهم تحديثات Laravel و PHP لكتابة كود أنظف وأسرع

أغسطس 17, 2025

Laravel Global Scopes: Automatic Query Filtering Eloquent الأهمية: فرض فلترة ثابتة على جميع استعلامات الموديل (مثل Soft Deletes) دون تكرا...

The Ultimate Managed Hosting Platform