چه خبر از لاراول 10x

من علیرزا هستم ومیخوام بپردازم به بروزرسانی جدید لاراول که چند ساعتی هست ریلیز شد. یه نگاه سطحی به این بروزرسانی بندازیمقبل از لاراول 9، نسخه های اصلی فریم ورک دو بار در سال یا تقریباً هر شش ماه یکبار منتشر می شد. با شروع با لاراول 9، تیم اصلی به سراغ یه برنامه سالانه رفت و لاراول 9 را در فوریه 2022 ریلیز کرد.خب برنامه بروزرسانی لاراول رو با هم ببینیم:Laravel 9: February 8th, 2022Laravel 10: February 14th, 2023Laravel 11: Q1 2024بریم برخی از ویژگی های بزرگ لاراول تو نسخه 10 رو باهم ببینیم.لاراول 10 از PHP 8.0 پشتیبانی نمی کنه!فریم ورک لاراول پشتیبانی از PHP <=v8.0 را در لاراول 10 حذف کرد. حداقل نسخه مورد نیاز PHP ^8.1 هست.لاراول Pennantلاراول Pennant بسته ای است که توسط Tim MacDonald توسعه داده شده. https://github.com/timacdonald خب حالا Feature Flags چی هستن و چیکار میکنن؟لاراول Pennant یک رویکرد سبک و کارآمد برای مدیریت Feature Flags برنامه شما ارائه می‌ده.Pennant شامل یک درایور آرایه در حافظه و یک درایور پایگاه داده برای ذخیره سازی دائمی Feature هاست.ویژگی ها را می توان به راحتی از طریق متد 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لاراول 10 و Process layer این process abstraction layer توسط کچل خان Nuno Maduro و Taylor Otwell ارائه شده.لاراول 10.x یک abstraction layer زیبا برای شروع و تعامل با فرآیندهای خارجی از طریق نمای جدید Process معرفی می کند: دیرینگ دیرینگ! مثال:use Illuminate\Support\Facades\Process; $result = Process::run('ls -la'); return $result->output();فرآیندها حتی ممکن هست تو Poll شروع بشه که امکان اجرای راحت و مدیریت فرآیندهای همزمان رو فراهم می کنه: مثال:use Illuminate\Process\Pool; use Illuminate\Support\Facades\Pool; [$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();قوانین اعتبار سنجی قابل فراخوانی پیش فرض هستند!با شروع تو لاراول 10، قوانین اعتبار سنجی قابل فراخوانی حالا پیش فرض هستن. وقتی که یه قانون اعتبار سنجی جدید از طریق artisan ایجاد می کنید، این چیزی هست که می تونید انتظار داشته باشید:# Laravel 9 creates a rule class that implements the # Illuminate\Contracts\Validation\Rule interface artisan make:rule Uppercase # Laravel 9 flag to create an invokable and implicit rule artisan make:rule Uppercase --invokable artisan make:rule Uppercase --invokable --implicit # Laravel 10 creates an invokable rule by default artisan make:rule Uppercase # Laravel 10 implicit rule artisan make:rule Uppercase --implicitگزینه Test Profiling برای تست هاپروفایل تست توسط Nuno Maduro ارائه شده.ویژگی جدیدی که به لاراول 10اضافه شده یک گزینه هست که یافتن تست های کند را برای شما آسون می کنه چطوری؟ اینطوری...php artisan test --profileTest Profilingتست لاراولشوخی:اگه ادعای برنامه نویسی داری و ناسا رو با HTML و CSS هک کردی میتونی به این پروژه هم یه کمک کوچولو بکنی خدا خیرت بده :) حالا چطوری پروژه رو تست کنیم و اگه اشکالی بود میتونید مشکل رو گزارش کنید به تیلور کچل یا بقیه توسعه دهنده ها تا رفع بشه کامند زیر رو داخل ترمینال اجرا کنید.laravel new <your-project-name> --dev بروزرسانی لاراولاگه میخوای بروزرسانی انجام بدین عجله نکنید و بعد از یکی دو هفته انجام بدین. حالا اگه اصرار هم میکنید باشه میگم از کجا بروزرسانی کنید. D: https://laravel.com/docs/10.x/upgrade و در انتها سخن پایانی هیچی :|بدرود تا آپدیت بعدی.