M.R.S.O
M.R.S.O
خواندن ۳ دقیقه·۲ سال پیش

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

من علیرزا هستم ومیخوام بپردازم به بروزرسانی جدید لاراول که چند ساعتی هست ریلیز شد.

یه نگاه سطحی به این بروزرسانی بندازیم


قبل از لاراول 9، نسخه های اصلی فریم ورک دو بار در سال یا تقریباً هر شش ماه یکبار منتشر می شد. با شروع با لاراول 9، تیم اصلی به سراغ یه برنامه سالانه رفت و لاراول 9 را در فوریه 2022 ریلیز کرد.

خب برنامه بروزرسانی لاراول رو با هم ببینیم:

  • Laravel 9: February 8th, 2022
  • Laravel 10: February 14th, 2023
  • Laravel 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 --profile
Test Profiling
Test Profiling


تست لاراول

شوخی:اگه ادعای برنامه نویسی داری و ناسا رو با HTML و CSS هک کردی میتونی به این پروژه هم یه کمک کوچولو بکنی خدا خیرت بده :) حالا چطوری پروژه رو تست کنیم و اگه اشکالی بود میتونید مشکل رو گزارش کنید به تیلور کچل یا بقیه توسعه دهنده ها تا رفع بشه کامند زیر رو داخل ترمینال اجرا کنید.

laravel new <your-project-name> --dev

بروزرسانی لاراول

اگه میخوای بروزرسانی انجام بدین عجله نکنید و بعد از یکی دو هفته انجام بدین. حالا اگه اصرار هم میکنید باشه میگم از کجا بروزرسانی کنید. D:

https://laravel.com/docs/10.x/upgrade

و در انتها سخن پایانی

هیچی :|

بدرود تا آپدیت بعدی.



لاراولاعتبار سنجیفریم ورکلاراول 10بروزرسانی جدید لاراول
شاید از این پست‌ها خوشتان بیاید