من علیرزا هستم ومیخوام بپردازم به بروزرسانی جدید لاراول که چند ساعتی هست ریلیز شد.
یه نگاه سطحی به این بروزرسانی بندازیم
قبل از لاراول 9، نسخه های اصلی فریم ورک دو بار در سال یا تقریباً هر شش ماه یکبار منتشر می شد. با شروع با لاراول 9، تیم اصلی به سراغ یه برنامه سالانه رفت و لاراول 9 را در فوریه 2022 ریلیز کرد.
خب برنامه بروزرسانی لاراول رو با هم ببینیم:
بریم برخی از ویژگی های بزرگ لاراول تو نسخه 10 رو باهم ببینیم.
فریم ورک لاراول پشتیبانی از PHP <=v8.0 را در لاراول 10 حذف کرد. حداقل نسخه مورد نیاز PHP ^8.1 هست.
لاراول Pennant بسته ای است که توسط Tim MacDonald توسعه داده شده.
خب حالا 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')) { // ... }
@feature('new-onboarding-flow')
<div>
<!-- ... -->
</div>
@endfeature
این 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
پروفایل تست توسط Nuno Maduro ارائه شده.
ویژگی جدیدی که به لاراول 10اضافه شده یک گزینه هست که یافتن تست های کند را برای شما آسون می کنه چطوری؟ اینطوری...
php artisan test --profile
شوخی:اگه ادعای برنامه نویسی داری و ناسا رو با HTML و CSS هک کردی میتونی به این پروژه هم یه کمک کوچولو بکنی خدا خیرت بده :) حالا چطوری پروژه رو تست کنیم و اگه اشکالی بود میتونید مشکل رو گزارش کنید به تیلور کچل یا بقیه توسعه دهنده ها تا رفع بشه کامند زیر رو داخل ترمینال اجرا کنید.
laravel new <your-project-name> --dev
اگه میخوای بروزرسانی انجام بدین عجله نکنید و بعد از یکی دو هفته انجام بدین. حالا اگه اصرار هم میکنید باشه میگم از کجا بروزرسانی کنید. D:
هیچی :|
بدرود تا آپدیت بعدی.