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

تیم لاراول نسخه 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
علی نوروزی
سلام خسته نباشی داداشی دمت گرم بابت پست های خوبت ، فقط یه نکته ای : تا اونجایی که میدونم withQuery کارش جایگزین کردن مقدار قبلیه پس با این اوضاع withQuery دوم اون اولیه رو بی اثرش میکنه
میلاد خسروی
سلام علی عزیز، تا جایی که من میدونم، متد withQuery برای ارسال کوئری پارامتر استفاد ه میشه!