تغییرات جدید لاراول 12.16

تیم لاراول نسخه 12.16 را با قابلیت‌های جدیدی مانند Rule::contains()، اعتبارسنجی in_array_keys و متد Arr::hasAll() منتشر کرد. در این ورژن یک سری تغییرات خوبی روی اعتبارسنجی ها اعمال شده که تجربه کاری راحتری برای شما رقم میزند.


اضافه شدن اعتبارسنجی "in_array_keys"

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

$validator = Validator::make($request->all(), [
    'config' => 'array|in_array_keys:api_key,access_token,oauth_token',
    'config.api_key' => 'nullable|string|min:32|max:64',
    'config.access_token' => 'nullable|string|min:40',
    'config.oauth_token' => 'nullable|string|starts_with:oauth_',
]);

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


Hidden Context Attribute

در لاراول 12.15 دیدیم که یک اتربیوت جدید اضافه شده به نام Context. حالا شما قابلیت استفاده از Context به صورت Hidden رو دارید:

public function __construct(#[Context('user', hidden: true)] User $user)

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


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

در آپدیت جدید لاراول شما این امکان خواهید داشت که از متد "contains()" برای چک کنید یک آرایه باید مقدار های مشخص شده را داشته باشه:

use IlluminateValidationRule;

// Before
Validator::make($request->all(), [
    'roles' => [
        'required',
        'array',
        'contains:'.implode(',', array_column([Role::Admin, Role::Editor], 'value')),
    ],
]);


// After
Validator::make($request->all(), [
    'roles' => [
        'required',
        'array',
        Rule::contains([Role::Admin, Role::Editor]),
    ],
]);

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


اضافه شدن متد "hasAll()" به Arr

در لاراول 12.16 یک متد جدید به نام "hasAll()" به کلاس Arr اضافه شد. این متد چک میکنه تمامی مقدار هایی که مشخص کردیم در کلید های یک آرایه موجود باشد:

use IlluminateSupportArr;

$array = ['name' => 'Taylor', 'language' => 'php'];

Arr::hasAll($array, ['name']); // true
Arr::hasAll($array, ['name', 'language']); // true
Arr::hasAll($array, ['name', 'ide']); // false

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


اضافه شدن متد "toUri()" به Stringable

متد "toUri()" این قابلیت رو داره که یک رشته به URI تبدیل کنه:

$sentence = 'Go to {https://euhosting.com/support} for support.';

$uri = str($sentence)->between('{', '}')->toUri();

if (auth()->user()->isVip()) {
    $uri = $uri->withQuery(['customer' => auth()->user()->publicId()])
        ->withQuery(['priority' => 'emergency']);
}

return $uri->value();

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


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

  • تغییر اولویت در کامند optimize:clear برای پاک کردن کش - #55792
  • فیکس کردن متد "assertSessionMissing()" زمانی که یک آرایه بهش ارسال میکردیم - #55800
  • پشتیبانی از ارسال داده به صورت raw در درایور Resend در ایمیل ها - #55803
  • اضافه کردن آپشن برای استفاده از defer در کش فلکس - #55802
  • ریفکتور کد - #55823
  • آپدیت کردن کامنت - #55812
  • فیکس باگ متد "putMany()" در ردیس - #55814
  • پشتیبانی از null در کلاس ResponseFactory برای استریم - #55833
  • اضافه کردن phpdoc در اسکوپ ها برای گرفتن خطا تایپ - #55830
  • حذف کردن @return در __contruct ها - #55858
  • استفاده is_int() به جای is_integer() برای لاراول پینت - #55851
  • اضافه کردن پارامتر تایپ به متد "upsert()" در کوئری بیلدر - #55849

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

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

2+ نظر

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

2 نظر

  • علی نوروزی
    علی نوروزی
    14 خرداد، 1404

    سلام خسته نباشی داداشی دمت گرم بابت پست های خوبت ، فقط یه نکته ای : تا اونجایی که میدونم withQuery کارش جایگزین کردن مقدار قبلیه پس با این اوضاع withQuery دوم اون اولیه رو بی اثرش میکنه

    • میلاد خسروی
      میلاد خسروی
      14 خرداد، 1404

      سلام علی عزیز، تا جایی که من میدونم، متد withQuery برای ارسال کوئری پارامتر استفاد ه میشه!