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

لاراول به تازگی ورژن جدید خودشو یعنی 11.37 ریلیز کرد و یک سری قابلیت های خوب مثل متد whereDoesntHaveRelation و... اضافه کرد. در این پست به بررسی این تغییرات می پردازیم.


اضافه شدن تریت Dumpable به Uri

در ورژن جدید لاراول، تریت Dumpable به کلاس Uri اضافه شده، با این تغییر شما میتونید به صورت مستقیم از متد "()dd" استفاده کنید:

use IlluminateSupportUri;

Uri::of('https://parantes.ir')
    ->withQuery(['from' => 'code-news'])
    ->dd();

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


اضافه شدن گزینه "Ignore Case" به متد ()Str::is

در آپدیت جدید لاراول، یک قابلیتی به متد "()Str::is" اضافه شد که میشه با فعال کردن اون حالت سختگیری اون رو خاموش کرد:

Str::is('Admin', 'admin', true); // true
Str::is('*.jpg', 'photo.JPG', true); // true
Str::is('SKU123*', 'sku12345', true); // true
Str::is('prd-001*', 'PRD-001-XYZ', true); // true
Str::is('JOHN.DOE@example.com', 'john.doe@example.com', true); // true

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


اضافه شدن متد جدید "()whereDoesntHaveRelation" به الکوئنت

در لاراول یک متد جدید اضافه شده که به راحتی میتونید چک کنید که اگه اون رابطه مدنظر نباشه، جزو نتایج نشون داده نشه:

// Before
User::whereDoesntHave('comments', function ($query) {
    $query->where('created_at', '>', now()->subDay());
})->get();

// After
User::whereDoesntHaveRelation('comments', 'created_at', '>', now()->subDay())->get();

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


اضافه شدن متد جدید "()whereDoesntHaveMorph" به الکوئنت

این متد هم شبیه متد بالا عمل میکنه با این تفاوت برای ریلیشن های پلی مرفیک استفاده میشه:

// Before
User::whereDoesntHaveMorph('comments', [Post::class, Video::class], function ($query) {
    $query->where('created_at', '>', now()->subDay());
})->get();

// After
User::whereMorphDoesntHaveRelation(
    'comments', [Post::class, Video::class], 'created_at', '>', now()->subDay()
)->get();

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


اضافه شدن متد "()assertFailedWith" به Queue ها

شما میتونید با استفاده از این متد در تست هاتون چک کنید که جاب شما با چه Exception به خطا خورده:

use AppJobsProcessPodcast;
use AppExceptionsMyException;

$job = new ProcessPodcast()->withFakeQueueInteractions();
 
$job->assertFailedWith('whoops');
$job->assertFailedWith(MyException::class);
$job->assertFailedWith(new MyException);
$job->assertFailedWith(new MyException(message: 'whoops'));
$job->assertFailedWith(new MyException(message: 'whoops', code: 123));

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


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

  • آپدیت کردن php-doc متد "()hasAny" در کالکشن ها - #53963
  • آپدیت کردن پیام های خطا DetectsLostConnections تریت - #53966
  • آپدیت کردن وابستگی ها - #53975
  • اضافه کردن تایپ string به متد "()withoutQuery" در Uri ها - #53973
  • آپدیت کردن php-doc ها - #53984
  • اضافه کردن پارامتر به متد "()preventStrayRequests" به صورت بول - #53992
  • ریفکتور - #53987
  • فیکس کردن php-doc ها - #53985
  • آپدیت کردن php-doc در ویو ها - #54009
  • اضافه شدن تست برای هلپر "()data_get" در صورت نال بودن دیتا - #54059
  • اضافه شدن تست برای Overlapping در روت ها - #54050
  • اضافه کردن قابلیت استفاده از Uri در تست ها - #54038

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

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

0+ نظر

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

0 نظر

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