این هفته، تیم لاراول کلی خبر داشتن، از جمله انتشار لاراول 12 جدید. ولی حدس بزنید چی؟ این نسخه هیچ فیچر جدیدی نداره! و این دقیقاً همون چیزیه که خیلیها منتظرش بودن. بذارید براتون توضیح بدم.
لاراول 12، بالاخره “خستهکننده” شد!
چهار روز قبل از انتشار، تیلور تو توییتر یه چیزی گفت که خیلیها رو خوشحال کرد:
دوشنبه لاراول 12 منتشر میشه. این نسخه بیشتر روی maintenance تمرکز داره، وابستگیها رو آپدیت میکنه و تغییرات بنیادین و فیچرهای اصلی جدید خیلی کمی داره. به همین خاطر، بیشتر اپلیکیشنها میتونن بدون تغییر کدشون به این نسخه ارتقا پیدا کنن. با بیشتر شدن اپلیکیشنهایی که با لاراول ساخته میشن، تمرکز ما روی اینه که فیچرهای جدید رو به صورت مداوم در طول سال و بدون تغییرات بنیادین منتشر کنیم و از نسخههای سالانه برای آپدیت وابستگیها و سازگاری با نسخههای جدید PHP استفاده کنیم. تمرکز اصلی هفته آینده روی این موارد خواهد بود:
- لاراول کلود
- استارتر کیتهای جدید لاراول
- وبسایت جدید لاراول
- انتشار stable اکستنشن لاراول VS Code
هفته خیلی خفنی برای لاراول و PHP خواهد بود.
و این موضوع تو صفحه Release Notes رسمی هم تأیید شده:

#حداقل_تغییرات_بنیادین
بیشتر تمرکز ما تو این چرخه انتشار روی به حداقل رسوندن تغییرات بنیادین بوده. در عوض، سعی کردیم بهبودهایی رو به صورت مداوم در طول سال منتشر کنیم تا اپلیکیشنهای موجود خراب نشن. به همین خاطر، لاراول 12 یه نسخه maintenance نسبتاً جزئی برای آپدیت وابستگیهای موجوده. با این حساب، بیشتر اپلیکیشنهای لاراول میتونن بدون تغییر کدشون به لاراول 12 ارتقا پیدا کنن.
اگه به گیتهاب لاراول 12 هم یه نگاه بندازیم، میبینیم که بیشتر تغییرات مربوط به آپدیت وابستگیها و رفع اشکالات کوچیکه:

لیست کامل بیشتر از 80 تا مورد داره، ولی چکیده همهشون اینا هستن:
- بهبودهای کوچیک
- آپدیت نسخههای dependency ها (Carbon، UUIDs و غیره)
- رفع اشکالات کوچیک
بدون هیچ چیز خیلی مهمی واقعاً. انگار یه نسخه هفتگی معمولی لاراول 11.x هست، فقط با تعداد بیشتری از این موارد کوچیک که همزمان منتشر شدن.
صبر کن ببینم، پس چرا این نسخه “جزئی” خوبه؟
بیایید فیچرهای جدید لاراول 11 رو یه مرور کنیم:
- slim skeleton جدید
- API به صورت جداگانه نصب میشه
- پیشفرضهای جدید: Pest و SQLite
- دستورات جدید مثل make:enum، make:class
- صفحه Health /up
- افزایش حداقل PHP از 8.1 به 8.2
- و غیره.
تغییرات بنیادین نسبتاً زیادی داشت. در مقایسه با اون، لاراول 12 خیلی جزئیه.
حتی قبل از لاراول 11، معمولاً چند فیچر مهم تو هر نسخه سالانه جدید اضافه میشد.
یه نکته کوچیک: اگه نمیدونید، لاراول نسخههای اصلی رو سالی یه بار تو فوریه/مارس منتشر میکنه، بدون نسخههای رسمی LTS. هر نسخه 1.5 سال با رفع اشکال و 2 سال با رفع مشکلات امنیتی پشتیبانی میشه.

تو این چند سال، با این چرخه انتشار نسخه اصلی سالانه، بعضیها از یادگیری و آپدیت چیزهای جدید هر سال خسته شدن. من نظرات و توییتهایی مثل اینا دیدم:
لاراول خیلی سریع پیش میره. سال پیش از لاراول 8 استفاده میکردم و الان شده 10.1. در مقایسه با Net Core و Spring که خیلی کندتر آپدیت میشن، این خیلی عجیبه.
دلیل این همه تغییر سریع چیه؟ آیا نسخههای قدیمی مثل 7 یا 8 هنوز کاربرد دارن؟
نظر نامحبوب:
نسخههای اصلی سالانه لاراول خیلی زیاده. راستش داره به یه بار اضافی تبدیل میشه. میدونم سرویسهایی هستن که کار رو آسونتر میکنن، ولی بازم خیلی زیاده.
دقیقاً به همین خاطر لاراول 12 خبر خوبیه. این نسخه مثل یه نسخه “جزئی” میمونه، فقط نسخههای پکیجها رو آپدیت میکنه.
ارتقا به این نسخه باید خیلی سریع باشه، فقط یه سوال در مورد پکیجهای شخص ثالث وجود داره: کی نسخههای خودشون رو آپدیت میکنن؟
فیچرهای “اصلی” تو نسخههای “جزئی” 11.x
تیم لاراول کلاً فلسفهشون رو تغییر دادن و فیچرهای مهم رو تو نسخههای جزئی هفتگی منتشر میکنن، نه اینکه منتظر نسخه اصلی بمونن.
ببینید چه تعداد فانکشن جدید تو نسخههای جزئی لاراول 11 اضافه کردن:
defer()در لاراول 11.23: دیگه نیازی به صف نیست؟- لاراول 11.23:
Cache::flexible() - نصب tailwind در لاراول 11: تغییر در نسخه 11.x
- لاراول 11.9: دیگه
migrate:freshتو پروداکشن کار نمی کنه - لاراول 11.23: Queue Job با Skip Condition
- لاراول 11.22: روابط معکوس eloquent برای جلوگیری از N+1 Query
- لاراول 11.38: فعال/غیرفعال کردن middleware در هر متد
- لاراول 11.8: چندین فایل Route به شکل آرایه
فکر کنم این روند ادامه پیدا کنه و فیچرهای جدید بیشتری تو نسخههای هفتگی لاراول 12.x ببینیم.

واقعا خیلی خوب شد که فیچر جدید نداشت ، اگر چند تا پروژه با لاراول داشته باشی آپدیت هر کدوم کلی زمان میبره…
ممنون از اطلاع رسانی ♥