نسخه:

یادداشت های انتشار

طرح نسخه سازی

لاراول و سایر بسته‌های شخص اول آن از Semantic Versioning پیروی می‌کنند . نسخه‌های اصلی فریم‌ورک هر سال منتشر می‌شوند (~Q1)، در حالی که نسخه‌های فریمورک و پچ ممکن است هر هفته منتشر شوند. نسخه های جزئی و پچ هرگز نباید حاوی تغییرات شکسته باشند.

هنگام ارجاع به چارچوب لاراول یا اجزای آن از برنامه یا بسته خود، همیشه باید از یک محدودیت نسخه مانند استفاده کنید ^10.0 ، زیرا نسخه های اصلی لاراول شامل تغییرات شکسته می شوند. با این حال، ما تلاش می‌کنیم همیشه اطمینان حاصل کنیم که می‌توانید یک نسخه اصلی جدید را در یک روز یا کمتر به‌روزرسانی کنید.

آرگومان های نامگذاری شده

آرگومان های نامگذاری شده توسط دستورالعمل های سازگاری با عقب لاراول پوشش داده نمی شوند. ممکن است در صورت لزوم تغییر نام آرگومان های تابع را برای بهبود پایگاه کد لاراول انتخاب کنیم. بنابراین، استفاده از آرگومان های نامگذاری شده هنگام فراخوانی متدهای لاراول باید با احتیاط و با درک این موضوع انجام شود که نام پارامترها ممکن است در آینده تغییر کند.

خط مشی پشتیبانی

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

نسخه PHP (*) رهایی رفع اشکال تا زمانی که رفع امنیتی تا
8 7.3 - 8.1 8 سپتامبر 2020 26 جولای 2022 24 ژانویه 2023
9 8.0 - 8.2 8 فوریه 2022 8 آگوست 2023 6 فوریه 2024
10 8.1 - 8.3 14 فوریه 2023 6 آگوست 2024 4 فوریه 2025
11 8.2 - 8.3 Q1 2024 5 آگوست 2025 3 فوریه 2026
پایان زندگی
فقط رفع‌های امنیتی

(*) نسخه های PHP پشتیبانی شده

لاراول 10

همانطور که می دانید، لاراول با انتشار لاراول 8 به نسخه های سالانه تبدیل شد. پیش از این، نسخه های اصلی هر 6 ماه یکبار منتشر می شد. این انتقال به منظور کاهش بار تعمیر و نگهداری بر روی جامعه و به چالش کشیدن تیم توسعه ما برای ارسال ویژگی‌های جدید شگفت‌انگیز و قدرتمند بدون ایجاد تغییرات اساسی است. بنابراین، ما انواع مختلفی از ویژگی‌های قوی را به لاراول 9 ارسال کرده‌ایم، بدون اینکه سازگاری با عقب را خراب کنیم.

بنابراین، این تعهد به ارسال ویژگی‌های جدید عالی در طول نسخه فعلی احتمالاً منجر به این خواهد شد که نسخه‌های «مهم» آینده عمدتاً برای کارهای «نگهداری» مانند ارتقاء وابستگی‌های بالادستی مورد استفاده قرار گیرند، که در این یادداشت‌های انتشار قابل مشاهده است.

لاراول 10 به بهبودهای ایجاد شده در لاراول 9.x با معرفی انواع آرگومان و بازگشت به همه متدهای اسکلت برنامه، و همچنین تمام فایل‌های خرد که برای تولید کلاس‌ها در سرتاسر چارچوب استفاده می‌شوند، ادامه می‌دهد. علاوه بر این، یک لایه انتزاعی جدید و مناسب برای توسعه‌دهندگان برای شروع و تعامل با فرآیندهای خارجی معرفی شده است. علاوه بر این، Laravel Pennant برای ارائه یک رویکرد فوق العاده برای مدیریت "پرچم های ویژگی" برنامه شما معرفی شده است.

PHP 8.1

Laravel 10.x به حداقل نسخه PHP 8.1 نیاز دارد.

انواع

اسکلت کاربردی و نکات نوع خرد توسط Nuno Maduro ارائه شده است .

در انتشار اولیه، لاراول از تمام ویژگی های نوع اشاره موجود در PHP در آن زمان استفاده کرد. با این حال، بسیاری از ویژگی‌های جدید در سال‌های بعد به PHP اضافه شده‌اند، از جمله نکات ابتدایی اضافی، انواع برگشتی و انواع اتحادیه.

Laravel 10.x به طور کامل اسکلت برنامه و همه خردهای استفاده شده توسط فریمورک را برای معرفی آرگومان و برگرداندن انواع به همه امضاهای متد به روز می کند. علاوه بر این، اطلاعات راهنمایی نوع «بلاک سند» حذف شده است.

این تغییر کاملاً با برنامه های موجود سازگار است. بنابراین، برنامه های موجود که این نکات نوع را ندارند به طور عادی به کار خود ادامه می دهند.

پرچم لاراول

Laravel Pennant توسط تیم مک دونالد توسعه داده شد .

بسته جدید شخص اول، Laravel Pennant، منتشر شده است. Laravel Pennant یک رویکرد سبک و کارآمد برای مدیریت پرچم‌های ویژگی برنامه شما ارائه می‌دهد. خارج از جعبه، Pennant شامل یک array درایور در حافظه و یک database درایور برای ذخیره سازی دائمی ویژگی است.

ویژگی ها را می توان به راحتی از طریق Feature::define روش تعریف کرد:

use Laravel\Pennant\Feature;
use Illuminate\Support\Lottery;
 
Feature::define('new-onboarding-flow', function () {
return Lottery::odds(1, 10);
});

هنگامی که یک ویژگی تعریف شد، می توانید به راحتی تعیین کنید که آیا کاربر فعلی به ویژگی داده شده دسترسی دارد یا خیر:

if (Feature::active('new-onboarding-flow')) {
// ...
}

البته، برای راحتی، دستورالعمل های Blade نیز موجود است:

@feature('new-onboarding-flow')
<div>
<!-- ... -->
</div>
@endfeature

Pennant انواع ویژگی ها و API های پیشرفته تر را ارائه می دهد. برای اطلاعات بیشتر، لطفاً به مستندات جامع Pennant مراجعه کنید .

تعامل فرآیند

لایه انتزاع فرآیند توسط Nuno Maduro و Taylor Otwell ارائه شده است .

Laravel 10.x یک لایه انتزاعی زیبا برای شروع و تعامل با فرآیندهای خارجی از طریق یک Process نمای جدید معرفی می کند:

use Illuminate\Support\Facades\Process;
 
$result = Process::run('ls -la');
 
return $result->output();

فرآیندها حتی ممکن است در استخرها شروع شوند که امکان اجرای راحت و مدیریت فرآیندهای همزمان را فراهم می کند:

use Illuminate\Process\Pool;
use Illuminate\Support\Facades\Process;
 
[$first, $second, $third] = Process::concurrently(function (Pool $pool) {
$pool->command('cat first.txt');
$pool->command('cat second.txt');
$pool->command('cat third.txt');
});
 
return $first->output();

علاوه بر این، فرآیندها ممکن است برای آزمایش راحت جعلی باشند:

Process::fake();
 
// ...
 
Process::assertRan('ls -la');

برای اطلاعات بیشتر در مورد تعامل با فرآیندها، لطفاً به مستندات فرآیند جامع مراجعه کنید .

پروفایل تست

پروفایل تست توسط Nuno Maduro ارائه شده است .

دستور Artisan test یک گزینه جدید دریافت کرده است --profile که به شما امکان می دهد به راحتی کندترین تست ها را در برنامه خود شناسایی کنید:

php artisan test --profile

برای راحتی، کندترین تست‌ها مستقیماً در خروجی CLI نمایش داده می‌شوند:

داربست آفت

اکنون ممکن است پروژه های جدید لاراول با داربست تست Pest به طور پیش فرض ایجاد شوند. برای شرکت در این ویژگی، --pest هنگام ایجاد یک برنامه جدید از طریق نصب کننده لاراول، پرچم را ارائه دهید:

laravel new example-application --pest

درخواست های CLI ژنراتور

اعلان های CLI ژنراتور توسط جس آرچر ارائه شده است .

برای بهبود تجربه توسعه دهندگان این فریم ورک، تمامی دستورات داخلی لاراول make دیگر نیازی به ورودی ندارند. اگر دستورات بدون ورودی فراخوانی شوند، آرگومان های مورد نیاز از شما خواسته می شود:

php artisan make:controller

افق / فیس لیفت تلسکوپ

Horizon و Telescope با ظاهری جدید و مدرن از جمله تایپوگرافی بهبود یافته، فاصله گذاری و طراحی به روز شده اند: