أطلقت Spatie إصداراً رئيسياً جديداً من مكتبتها Ignition وهي لمن لا يعلم مكتبة خاصة بعرض صفحات الأخطاء ضمن إطار عمل Laravel بطريقة جذابة وواضحة مع عديد المزايا كاقتراح سبب المشكلة والحل الخاص بها.
أول إصدار من مكتبة Ignition تم إطلاقها بالتزامن مع Laravel6 لتكون بديلاً عن صفحة الأخطاء الشهيرة Whoops، وقد تم اعتماد هذه الإصدارة الجديدة لتصبح صفحة الأخطاء الرئيسية في Laravel9 مع إمكانية تثبيتها ضمن Laravel8.
تأتي Ignition في إصدارتها الرئيسية الجديدة مع العديد من الامتيازات من أهمها:
اعتمادها كصفحة أخطاء رئيسية ضمن الإصدار المرتقب Laravel9
امكانية تثبيتها واستخدامها ضمن Laravel8
إمكانية تخصيص زر (عرض في المحرر) ليتم استخدام المحرر المفضل لديك
تجميع استدعاءات dump() وعرض نتائجها ضمن قسم منفصل
عرض الاستعلامات المنفذة خلال كل طلب - request - مع وقت تنفيذ كل استعلام
توفر القالب بنمطي Light و Dark مع إمكانية التطبيق التلقائي حسب إعدادات النظام
ولمعرفة بقية الامتيازات الخاصة بهذه المكتبة، يمكنك زيارة المستودع خاص بها عبر هذا الرابط.
يعتبر Laravel من أكثر أطر عمل PHP استخداماً في السنوات الأخيرة حيث يتم الإعتماد عليه من عديد المطورين والشركات التي تعمل باستخدام PHP وسيتم إطلاق النسخة 9 بداية شهر فبراير 2022.
سابقاً كانت إصدارات Laravel الرئيسية تصدر كل 6 أشهر مما كان يسبب بعض الإرباك خاصة للمطورين الجدد في هذا المجال. الآن، ابتداءً من النسخة 9، تم تغيير منظومة الإصدارات الرئيسية لتكون سنوية بدل كل 6 أشهر. وفي ما يلي أبرز المستجدات المرتقبة في النسخة 9 من Lavael.
الإصدار PHP8 هو الحد الأدنى في Laravel9
تصميم جديد للأمر route:list
إستخدام الكلاسات المجهولة في ملفات بناء جداول قاعدة البيانات
استخدام الوظائف النصية الجديدة في PHP8
الإنتقال من SwiftMailer إلى Symfony Mailer
إلغاء الملف server.php
الإصدار PHP8 هو الحد الأدنى في Laravel9
بما أن Laravel9 انتقل لإستخدام الإصدارة 6 من Symfony والتي تعتمد PHP8 كحد أدنى، فقد أصبح Laravel9 يعتمد أيضاً على PHP8 كحد أدنى.
تصميم جديد للأمر route:list
يعتبر الأمر route:list والخاص بعرض مسارات موقعك من أوائل الأوامر المضمنة في Laravel. وبالرغم من فائدته، إلا أنه يكون مزعجاً عند العرض خاصة عندما تكون هناك مسارات طويلة ومعقدة. هذا الأمر تغير الآن بعد أن تم إعادة تصميم طريقة عرض نتائج تنفيذ الأمر route:list في إصدارة Laravel9 لتكون بطريقة واضحة، بسيطة، وأنيقة.
إستخدام الكلاسات المجهولة في ملفات بناء جداول قاعدة البيانات
في الإصدار الـ 8 من Laravel وما سبقه من إصدارات، عندما يتم تنفيذ الأمر:
تكون النتيجة كالتالي:
إذا تطلب الأمر لاحقا تعديل الحقول في هذا الجدول وحاولت استخدام نفس الأمر، سينتج عن ذلك خطأ باعتبار أن التسمية CreateCustomersTable مستخدمة من قبل مما يتطلب أن تقوم بإعادة تنفيذ الأمر مع تسمية مختلفة. قد يكون الأمر عاديا في المشاريع الصغيرة لكن في المشاريع الكبيرة والتي يتم تطوير وتعديل حقول الجداول لتلبية متطلبات المشروع فإن ذلك يمثل مشكلة.
جاء الحل مع Laravel9 حيث تم اعتماد إنشاء الكلاسات المجهولة (Anonymous) أو كما يطلق عليها البعض عديمة التسمية وبالتالي لن يحصل أي تعارض عند تكرار استخدام الأمر السابق عدة مرات حيث ستكون البنية الناتجة من تنفيذ ذلك الأمر كالتالي:
استخدام الوظائف النصية الجديدة في PHP8
بما أن Laravel9 أصبحت تعتمد PHP8 كحد أدنى، فقد تم تغيير الكلاس Illuminate\Support\Str ليعتمد استخدام الوظائف النصية التالية بشكل أساسي والتي تم إضافتها في PHP8 وهي str_contains، str_starts_with، و str_ends_with.
الإنتقال من SwiftMailer إلى Symfony Mailer
قامت Symfony بإيقاف تطوير مكتبتها SwiftMailer واعتماد المكتبة الجديدة Symfony Mailer. نظرا لهذا، ستراعي Laravel9 حيث ستعتمد المكتبة الجديدة Symfony Mailer في تنفيذ عمليات البريد الإلكتروني.
إلغاء الملف server.php
تغيير طفيف آخر قادم مع Laravel9 وهو إلغاء الملف server.php حيث تم تضمين الكود الخاص به ضمن الملفات الرئيسية لإطار العمل Laravel9. ولا يوجد استخدام لهذا الملف سوى تنفيذ الأمر:
وتعتبر هذه أبرز التغييرات القادمة في Laravel9 وسيتم معرفة المزيد بعد الصدور الرسمي لها بتاريخ 9 فبراير 2022.