أصدر فريق Laravel الإصدار 13.36.0، ويحمل هذا التحديث عددًا من التحسينات والميزات الجديدة التي تركز على تبسيط عملية التطوير وزيادة كفاءة التطبيقات. يبرز من بينها أدوات بناء جديدة لقواعد التحقق، ودعم محسّن لقواعد البيانات الكبيرة، وتغييرات في كيفية إدارة اتصالات قواعد البيانات وميزات البث في الوقت الفعلي.
تحسينات جذرية في قواعد التحقق
أحد أبرز التغييرات في Laravel 13.36 هو إضافة واجهة Rule:: builders لجميع قواعد التحقق التي كانت تدعم فقط صيغة السلسلة النصية سابقًا. هذا يعني أن قواعد مثل required_with و accepted_if و url و uuid و distinct يمكن الآن كتابتها باستخدام التوابع (methods) التي توفر إكمالًا تلقائيًا في بيئات التطوير المتكاملة (IDE)، مما يحسن تجربة المطور بشكل كبير. على سبيل المثال، يمكنك الآن استخدام Rule::requiredWithout(’email’) أو Rule::url()->protocols([‘https’]) لتحديد قواعد أكثر دقة.
تعمل هذه التغييرات أيضًا على معالجة مشكلة تقسيم القيم التي تحتوي على فواصل، حيث تقوم القواعد الآن بتمرير معطياتها إلى المدقق كمصفوفة، مما يضمن معالجة صحيحة للقيم المعقدة. كما تم إضافة التابع equals() إلى مُنشئ Rule::date() لمرونة أكبر.
ميزات جديدة لإدارة قواعد البيانات والبث
لمستخدمي قواعد بيانات PlanetScale و Vitess، قدم Laravel التابع DB::olap() الذي يسمح بالتبديل إلى عبء عمل OLAP مؤقتًا لإجراء استعلامات كبيرة تتجاوز حد 100,000 صف في عبء عمل OLTP الافتراضي. هذه الميزة مفيدة جدًا للتقارير والتحليلات التي تتطلب معالجة مجموعات بيانات ضخمة.
بالإضافة إلى ذلك، أصبح بإمكان المطورين الآن إعادة ضبط اتصالات قواعد البيانات اللزجة (sticky connections) بين مهام قائمة الانتظار (queue jobs) من خلال إعداد Worker::$flushStickyConnections = true. هذه الميزة اختيارية وتمنع إرسال قراءات المهام اللاحقة إلى اتصال الكتابة، مما يضمن سلوكًا أكثر اتساقًا في بيئات العاملين الطويلة الأمد.
على صعيد البث، أصبحت عمليات بث Mercure تعمل بشكل متزامن افتراضيًا. هذا يعني أن الأحداث التي تستهدف اتصالات Mercure فقط ستتصرف الآن مثل ShouldBroadcastNow. يمكن للمطورين العودة إلى الوضع غير المتزامن عن طريق تعيين MERCURE_ASYNC=true، والذي يتطلب تحديد MERCURE_URL.
شمل التحديث أيضًا إصلاحات مهمة لـ #[DeleteWhenMissingModels] و #[FailOnTimeout] في الرسائل البريدية المدرجة في قائمة الانتظار، مما يضمن حذف المهمة إذا كان النموذج مفقودًا أو تم تعليم الرسالة كفاشلة عند انتهاء المهلة. كما تم إصلاح ثغرة في رسائل البريد Markdown تمنع تجاوز الهروب في روابط Markdown.
ماذا يعني هذا للمطورين؟
نرى أن هذا الإصدار يجلب تحسينات كبيرة لتجربة المطور، خاصة في التعامل مع قواعد التحقق التي أصبحت الآن أكثر قوة ووضوحًا بفضل أدوات البناء الجديدة. القدرة على إدارة الاستعلامات الكبيرة على قواعد بيانات مثل PlanetScale بفاعلية أكبر، بالإضافة إلى التحكم الدقيق في اتصالات قواعد البيانات لمهام قائمة الانتظار، يعزز استقرار وأداء تطبيقات Laravel. كما أن التغييرات في بث Mercure والتحسينات في الرسائل البريدية تساهم في بناء تطبيقات أكثر موثوقية وأمانًا.
المصدر: laravel-news.com