تغییرات جدید لاراول 12.15 - Context` Attribute`

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


Context Attribute

در آپدیت جدید لاراول 12، یک اتربیوت جدید به نام "Context" اضافه شد تا بتوانید از طریق این اتربیوت به Context دسترسی داشته باشی و دیتا بگیریدد:

use AppModelsChannel;
use AppModelsUser;
use IlluminateContainerAttributesContext;

public function run(
    #[Context('user')] User $user,
): void {
    $channel = Channel::factory()->create();

    $channel->users()->attach($user);

}

 برای دیدن این Pull Request کلیک کنید.


Default Value for Request Enum

در آپدیت جدید لاراول، شما میتونید یک مقدار دیفالت برای متد "enum()" در ریکوئست ها ست کنید:

$chartType = request()->enum('chart_type', ChartTypeEnum::class, ChartTypeEnum::Bar);

 برای دیدن این Pull Request کلیک کنید.


متد جدید "()assertRedirectToAction" در HTTP Tests

یک متد جدید به تست نویسی HTTP اضافه شده به نام "assertRedirectToAction()". این متد مشخص میکنه که بعد از این ریکوئست به کدوم اکشن از کنترلر انتقال داده میشه، مشابه اش قبلا روت بوده:

public function testAssertRedirectToActionWithoutParameters()
{
    $this
        ->get('redirect-to-index')
        ->assertRedirectToAction([TestActionController::class, 'index']);
}

 برای دیدن این Pull Request کلیک کنید.


اضافه شدن متد "assertClientError()" به HTTP Tests

در لاراول 12، یک متد جدید اضافه شده که چک کنید ریسپانس ارور داره به شکل راحتر از قبل:

Before:
$this->assertTrue($response->isClientError());

After:
$response->assertClientError();

 برای دیدن این Pull Request کلیک کنید.


اضافه شدن متد "hash()" به کلاس Stringable

در آپدیت جدید لاراول، شما میتونید به صورت مستقیم از متد هش در کلاس Stringable استفاده کنید. در این متد کافیه فقط الگوریتم هش وارد کنید:

Before:
$appId = str('secret-unique-key')
    ->pipe(fn (Stringable $str) => hash('xxh3', (string) $str))
    ->limit(10)
    ->prepend('app-');

After:
$appId = str('secret-unique-key')
    ->hash('xxh3')
    ->limit(10)
    ->prepend('app-');

 برای دیدن این Pull Request کلیک کنید.


اضافه شدن کلید "current_page_url" به صفحه بندی (Paginator)

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

$paginator->toArray()['current_page_url'];

 برای دیدن این Pull Request کلیک کنید.


Locale-aware Number Parsing

در متد "format()" کلاس Number یک پارامتر به نام $locale اضافه شده که عدد رو بر اساس ان اون ملیت قالب مناسبی رو برمیگردونه:

use IlluminateSupportNumber;

$number = 12345.67;
$string = Number::format($number, locale: 'en'); // 12,345.67
$string = Number::format($number, locale: 'de'); // 12.345,67
$string = Number::format($number, locale: 'fr'); // 12 345,67

$float = Number::parse($request->input($string));

 برای دیدن این Pull Request کلیک کنید.


اضافه شدن پارامتر $value به متد "assertSessionMissing()"

به متد "assertSessionMissing()" پارامتر $value اضافه شده مشابه متد "assertSessionHas()":

$response->assertSessionMissing('foo', 'badvalue');

 برای دیدن این Pull Request کلیک کنید.


تغییرات جزئی:

  • اضافه کردن تایپ پارامتر به متد های "assertJsonStructure()" و "assertExactJsonStructure()" در تست نویسی - #55743
  • حذف درایور apc از سشن ها - #55745
  • فیکس کردن تایپ ریترن - #55783
  • تقویت phpdoc در الکوئنت - #55762
  • فیکس کردن کامند db بدون پسورد - #55761
  • تقویت phpdoc در الکوئنت - #55779
  • ریفکتور جزئی - #55781
  • فیکس کردن کامند install:broadcast برای نصب لایوایر کیت - #55774
  • اضافه شدن امکان گرفتن حالت قبلی مدل (previous state) در مدل ها - #55729
  • اضافه کردن تایپ هینت در گرفتن اطلاعات از ENV ها - #55737

0 🔥
0 🎉
1 😮
0 👍
1 💜
0 👏
میلاد خسروی
نویسنده کد نیوز

برنامه نویس فان | Fun Developer یک آدم ساده که عاشق برنامه نویسی و کد زدنه :) تلاش میکنه تا به بقیه کمک کنه. توسعه دهنده هسته لاراول و فضای اوپن سورس. فاندر پرانتز و کد نیوز.

0+ نظر

برای ثبت نظر ابتدا ورود کنید.

0 نظر

    اولین نفر باش که نظر ثبت میکنی :) یعنی یه کامنت به ما نمیرسه 😁