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

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


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

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

لنشرح ذلك بمثال عملي على (لارافيل - Laravel) حتى يتضح أكثر, أول اصدار (LTS) كان (5.1) والذي صدر في (7-2015) واستمر دعمه حتى (7-2018) أي لمدة 3 سنوات ولكنهم تأخروا في اصدار نسخة (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) والذي يعد المحرك الأساسي لإطار العمل والذي صدر أخر تحديث منه قبل 3 أشهر فقط ليكون بذلك أحدث تجربة وأحدث اطار وأحدث لغة, وهنا تجد فيديو - 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) هو وجود وحدات (الاختبار والجودة) وتتميز بتوفير 3 أنواع منها (اختبار الوحدات - 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)