وبلاگ

لاراول 11؛ تمام آنچه میدانیم

لاراول 11؛ تمام آنچه میدانیم

لاراول 11 قرار نیست تا سه ماهه اول سال 2024 منتشر شود، اما برخی از ویژگی های جدید آن منتشر شده است و Taylor Otwell ( خالق لاراول ) در سخنرانی Laracon خود، از پیشرفت های جدید این نسخه، نسبت به نسخه های پیشین صحبت کرد.

در ادامه، تمام آن چیزی که در مورد لاراول 11 میدانیم را بررسی می کنیم.

ساختار دایرکتوری ساده

تا این لحظه، تمام این موارد جزو پیش نمایش بتا هستند و ممکن است تغییر کنند.

کنترلر ها

کنترلر ها دیگر به طور پیش فرض چیزی را extend نمی کنند.

 دیگر دایرکتوری middleware وجود ندارد

در حال حاضر، لاراول شامل 9 middleware است و بسیاری از آنها را هرگز  مورد استفاده یا customize نمی کنیم. با این حال، اگر می خواهید آنها را customize کنید، میتوانید موارد را به App/ServiceProvider منتقل کنید، مثلا :

AppServiceProvider laravel 11 - example

دیگر خبری از Http/Kernel نیست

اکثر کارهایی که قبلاً می توانستید در Kernel انجام دهید، اکنون می توانید در Bootstrap/App انجام دهید.

HttpKernel laravel 11 - example

تغییرات casts مدل

 casts مدل هم اکنون به عنوان یک متد تعریف شده است به جای یک .property هنگام تعریف به عنوان یک متد، ما می توانیم کارهای دیگر را نظیر فراخواندن متدهای دیگر به طور مستقیم از casts انجام دهیم. در اینجا یک مثال با استفاده از  AsEnumCollectionدر لاراول 11 آورده شده است :

Model casts changes laravel 11 - example

تغییرات Config

لاراول تعداد زیاد فایل config دارد و در Laravel 11 آنها حذف می شوند و تعداد گزینه های Config کاهش می یابند.فایل .env گسترش یافته است تا شامل همه گزینه های قابل تعريف باشد. برای اضافه شدن کانفیگ ها، میتوانید از دستور config:publish استفاده کنید و هر کانفیگی که نیاز دارید را به پروژه اضافه کنید. حتی با بازگردانی آن ها، باز هم میتوانید هر گزینه ای که نمی خواهید را شخصی سازی یا حذف کنید.

کم شدن تعداد Migration های پيش فرض

هنگامی که یک برنامه لاراول جدید را راه اندازی می کنید، با برخی migration ها مواجه می شوید که شامل تاریخ هایی از سال های 2014 و 2019 هستند. این موارد اکنون حذف شده و تنها 2 فایل وجود خواهد داشت.

تغییرات Routs

بطور پيش فرض، فقط دو فايل route وجود دارد،console.php  و web.php. مسیرهای API اکنون از طریق php artisan install:api  در دسترس خواهد بود و فایل مسیرهای API و Laravel Sanctum را به پروژه اضافه می کند.
در مورد وب سوکت هم، از طریق دستور php artisan install:broadcasting در دسترس خواهد بود.

حدف Console Kernel

هسته کنسول در حال حذف شدن است، و شما می توانید به جای آن دستورات کنسول خود را دقیقاً در routes/console.php تعریف کنید.

حداقل پشتیبانی از PHP

این یک تصمیم اولیه است، اما Laravel 11 به حداقل PHP 8.2 نیاز دارند. اگر از نسخه قدیمی PHP استفاده می کنید، اکنون زمان خوبی برای ارتقاء آن است.

سیاست پشتیبانی Laravel

پشتيبانی Laravel برای همه نسخه های لاراول، رفع اشکالات برای 18 ماه و رفع اشکالات امنیتی برای 2 سال است. برای همه کتابخانه های اضافی، از جمله  Lumen، فقط آخرین نسخه اصلی رفع اشکال دریافت می کند.

Security Fixes Until Bug Fixes Until Release (*) PHP Version
February 6th, 2024 August 8th, 2023 February 8th, 2022 8.2 - 8.0 Laravel 9
February 4th, 2025 August 6th, 2024 Q1 2023 8.2 - 8.1 Laravel 10
February 3rd, 2026 August 5th, 2025 Q1 2024 8.2 Laravel 11

 

جمع بندی

تاکنون، همه این ویژگی ها به عنوان بتای Laravel 11 در نظر گرفته شده اند و طراحی شده اند تا گردش کاری شما را بهبود ببخشد. چیز هایی ممکن است و احتمالاً تغییر کنند با اعلام ویژگی های جدید، این پست آپدیت خواهد شد.