منذ دقائق تم الإعلان رسميا عن توفر الإصدار المنتظر منذ سنوات الإصدار الجديد (LTS) من إطار عمل برمجة الويب (LARAVEL) والذي كان من المتوقع أن يتم الإعلان عنه في شهر سبتمبر من عام 2022 إلا أنه جرى تقديمه ليكون في العاشر من فبراير 2022 أي بعد يومين من الآن، ولكن ها هم قد سبقوا ذلك الموعد بيومين حتى يكون الحدث الأبرز في مؤتمر (Laracon) الذي سيعقد غدا بعد أقل من (20) ساعة من الآن.

لمن لا يعرف (لارافيل - Laravel) أو لماذا هي الأفضل على الإطلاق برأيي، يمكنك مراجعة تدوينتي السابقة - ما هي أفضل (ستاك \ تقنية) للبرمجة – كما يمكنك التعرف أكثر هنا عبر صفحة المشروع على مستودع الكود (GitHub) ويمكنك قراءة نشرة الإصدار الرسمية من الموقع الرسمي (Laravel.com).


لماذا الانتظار لسنوات؟

في مجتمع المصادر المفتوحة يوجد ما هو متعارف عليه تحت مسمى الإصدار (LTS) اختصارا لـ (Long-term support) والذي يعني (الدعم الفني الطويل) حيث يتم إصدار نسخ ويتم دعمها وتحديثها بشكل مستمر لعدد معين من السنوات حتى مع وجود إصدارات أحدث فإنها تنزل بشكل مستمر خلال ذلك الوقت.

لنشرح ذلك بمثال عملي على (لارافيل - Laravel) حتى يتضح أكثر، أول إصدار (LTS) كان (5.1) والذي صدر في (7-2015) واستمر دعمه حتى (7-2018) أي لمدة ثلاث سنوات ولكنهم تأخروا في إصدار نسخة (LTS) جديدة مع وجود نسخة محدثة (5.2 و 5.3 و 5.4) وعن نفسي لم أدخل عالم (Laravel) إلا بعد نضوج النسخة (5.5) والتي كانت في (8-2017) وأيضا كانت (LTS)،  هذا أقنعني بأن المجتمع التقني حول هذا الإطار منضبط وملتزم فعلا في توفير إصدارات طويلة الدعم قبل انتهاء المدة للإصدار السابق وهذا تكرر أيضا في النسخة (6) التي صدرت في (9-2019) مع استمرار دعم (5.5) التي لم أنتقل منها حتى اليوم رغم صدور الإصدارين (7) و (8).


هل من الضروري انتظار (LTS)؟

في حال كنت تقوم ببناء منصات لعملاء بشكل تجاري فمن الضروري أن تقدم لهم الدعم ولذلك لا بد أن تختار نسخة يستمر دعمها وتحديثها وإصلاح أخطائها ومشاكلها الأمنية مباشرة دون الحاجة إلى عمل تحديث لنسخة كاملة، فلا مجال للمغامرة ببعض المميزات الإضافية في الإصدارات الأحدث والتي يمكنك أن تقوم بها بالتأكيد ولكن بجهد ووقت أكبر، لذا من أجل ضمان توفير دعم مستمر وأمان لعميلك عليك أن تقوم بالاعتماد على نسخ (LTS).


ما هو الفارق الزمني بين نسخ (LTS)؟

لا يوجد قانون محدد في مجتمع المصادر المفتوحة ولكن المتعارف عليه أن يكفي حتى نزول إصدار جديد (LTS) ولكن (لارافيل) قررت أن تقوم بتنزيل نسخة (LTS) سنويا، يعني النسخة (10) ستكون (LTS) و سننتظرها بمشيئة الله في (02-2023).


ما هو مؤتمر (Laracon)؟

هو مؤتمر سنوي يقام للمطورين (بلارفيل) ليكون مكمّلا للمجتمع المتكامل كما ذكرت في المقال السابق، وكانت تسميته من دمج الكلمتين (Laravel Conference) والذي سيقام غدا ويبث مباشرة على يوتيوب عبر الوصلة التالية - Laracon Online Winter '22 -  


ما الجديد في النسخة (9) ؟

هناك الكثير من المميزات والإضافات والتي تعتبر  بالنسبة لي هي مجموع الإصدارات (7) و (8) و (9) ولكن أهمها هو اعتماده على إصدار (PHP 8) والذي يعد نقلة نوعية من ناحية السرعة والأداء عن الإصدار (7.4)، كما أنه تم الاعتماد على (Symfony 6) والذي يعد المحرك الأساسي لإطار العمل والذي صدر آخر تحديث له قبل ثلاثة أشهر فقط ليكون بذلك أحدث تجربة وأحدث إطار وأحدث لغة، وهنا تجدون فيديو - Laravel 9 - Everything You Need to Know (In 45 Minutes) - يقوم بعرض أهم المميزات والتطويرات المشحونة مع الإصدار (9).


كيفية التحديث إلى الإصدار الجديد؟

يمكنك قراءة طريقة التحديث إلى النسخة (9) من الوصلة التالية - Upgrade Guide - والتي تتطلب أقل من 30 دقيقة، ولكن هذا بافتراض  أنك ستقوم بالتحديث من النسخة (8) إلى (9) أما في حال كنت ممن يحدث فقط للإصدارات (LTS) مثلي فأنت قد تحتاج لأكثر من بضع ساعات، حيث إنه من الضروري أن تكون عملية التحديث من إصدار إلى إصدار أعلى وهكذا، يعني عليك أولا التحديث من (6) إلى (7)  ومن ثم التحديث من (7) إلى (8)  ومن ثم التحديث من (8) إلى (9).


كيف يمكنك تسريع عملية التحديث؟

مما تمتاز به (Laravel) هو وجود وحدات (الاختبار والجودة) وتتميز بتوفير ثلاثة أنواع منها (اختبار الوحدات - Unit Test) وهو المتعارف عليه في كل لغات البرمجة وأيضا توفر (اختبار المتصفح - Browser Test) أو كما يسمى (الاختبار الآلي أو المؤتمت - Automation Test) وهو عبارة عن تطوير كود يقوم بعمل اختبار لكودك كما لو أنه شخص يقوم بفتح المتصفح وعمل كل الخطوات التي من المفترض أن يقوم بها مع التحقق من النتائج كما لو قام بها شخص بشري، وأشهر هذه الأدوات تستخدم محرك (selenium) الذي يتم توفيره على متصفح (Chrom driver) والمدعوم بشكل كامل ضمنيا في (Laravel) ضمن باكج (Dusk)، وأيضا يتم توفير (اختبار الوظيفة - Featured test) وهي شبيهة باختيار (Browser Test) مع عدم ضرورة فتح الموقع في المتصفح بل يتم كل شيء في الخلفية دون أن يلاحظها أحد.

ميزة وجود وحدات (الاختبار والجودة) هي أنك بتنفيذ أمر واحد على مشروعك يتم التأكد من كل الأكواد والرجوع لك في حال وجود أي خطإ في أي مكان، وفي حال قمت بعمل ذلك لمشروعك فإنه بمجرد التحديث من (6) إلى (7) كل ما تحتاجه هو تشغيل أمر الاختبار وفي حال لم تكن هناك أي مشاكل يمكنك الانتقال إلى الذي بعده وهكذا، وفي حال كانت هناك مشاكل فهذا يعني ضرورة تحديث بعض الكود بناء على نشرة الإصدار المختصة بالإصدار المخصص.


كيف تتعلم التطوير بأفضل إطار برمجة للويب (Laravel 9)؟

إذا كنت مبرمجا سابقا ولديك الخبرة الكافية للانتقال إلى لغة برمجة جديدة فعليك بأكاديمية لارافيل الرسمية من هنا (laracasts.com)  أما في حال كنت مبتدئا وتودّ الدخول فيها فأنصحك بهذا الكورس (PHP with Laravel for beginners - Become a Master in Laravel).