برنامه نویس فان | Fun Developer یک آدم ساده که عاشق برنامه نویسی و کد زدنه :) تلاش میکنه تا به بقیه کمک کنه. توسعه دهنده هسته لاراول و فضای اوپن سورس. فاندر پرانتز و کد نیوز.
این هفته تیم لاراول ورژن جدید یعنی 11.21 منتشر کردند. توی این ورژن asset prefetching strategies Vite، متد withoutHeaders برای تست نویسی، یک متد برای حذف سریع مدل ها با Soft Delete و... اضافه کردند.
اضافه شدن متد "withoutHeaders()" به تست ها
این تغییر توسط خودم انجام شده و خودم روی هسته لاراول اضافه کردم. این متد به راحتی یک آرایه میگیره و هدر هارو از درخواست ما در تست نویسی پاک میکنه:
// Before:
$this
->withoutHeader('name')
->withoutHeader('foo')
->from('...');
// After:
$this
->withoutHeaders(['name', 'foo'])
->from('...');
برای دیدن این Pull Request کلیک کنید.
اضافه شدن متد "countBetween()" به 'AssertableJson'
شما میتونید با استفاده از متد countBetween
بگید که حداقل و حداکثر تعداد آیتم ها چقدره:
$response->assertJson(fn (AssertableJson $json) => $json
->countBetween(5, 20),
...,
);
برای دیدن این Pull Request کلیک کنید.
اضافه متد جدید "forceDestroy()" به مدل ها
این متد برای اینکه بتونید یک مدل حذف کنید حتی زمانی که از Soft Deleted استفاده کنه:
// Before
$user = User::find(1);
$user->forceDelete();
// After
User::forceDestroy(1);
برای دیدن این Pull Request کلیک کنید.
پشتیبانی کردن از associative array در "expectsChoice()"
برای استفاده از کردن از associative array در کامند های نیاز بود از متد choice()
استفاده کنیم اما الان میتونیم به شکل زیر عمل کنیم:
// Before
$this->expectsChoice('Choose a number', 'one', [
'seven',
'eight',
'nine',
'Seven',
'Eight',
'Nine',
]);
// After
$this->expectsChoice('Choose a number', 'one', [
'seven' => 'Seven',
'eight' => 'Eight',
'nine' => 'Nine',
]);
برای دیدن این Pull Request کلیک کنید.
اضافه شدن Prefetching Strategies برای Vite
زمانی که شما یک اپلیکیشن با vite میسازید اصولا یک سری CSS و JS الکی لود نمیشه و ربطی به اون صفحه نداره. با این امکان فقط فایل های مربوط به اون بخشی که باز میکنید لود میشن و performance اپلیکیشن شما خیلی زیاد تر میشه:
public function boot()
{
Vite::useWaterfallPrefetching(concurrency: 10);
Vite::useAggressivePrefetching();
Vite::usePrefetchStrategy('waterfall', ['concurrency' => 1]);
}
برای دیدن این Pull Request کلیک کنید.
اضافه شدن متد "resource()" به Http Client
با استفاده از این متد میتونید body اون درخواست رو به صورت steam بگیرید:
$response = $this->factory->get('http://foo.com/api');
$this->assertSame(
'{"result":{"foo":"bar"}}',
stream_get_contents($response->resource())
);
برای دیدن این Pull Request کلیک کنید.
تغییرات جزئی:
- بهتر کردن تست ها -
#52402
- فیکس کردن doc block های ایونت ها -
#52411
- فیکس کردن متن ایمیل ها -
#52417
- جلوگیری از مقدار خالی برای attribute ها -
#52415
- اضافه کردن "
@mixin
" به Http Client برای ساپورت کردن بهتر ادیتور -#52410
- جلوگیری از آپدیت شدن updated_at در رابطه BelongsTo زمانی که وجود نداره -
#52407
- آپدیت کردن متد "afterCreating()" در فکتوری ها -
#52424
- اتوماتیک کردن secure در کوکی ها -
#52422
- آپدیت کردن phpdoc مدل ها -
#52425
- چک کردن وجود داشتن متد
flushSharedContext
قبل از صدا زدن -#52470
- اضافه کردن یک آپشن جدید به دستور "
make:notification
" برای ساخت ویو -#52465
- تغییر در SQLiteProcessor برای نام ستون -
#52490
- بهتر کردن تست های کوکی - #52472
- فیکس کردن متد "chain()" ل -
#52486
- بهتر کردن کامند "show" برای دیتابیس -
#52501
- پشتیبانی کردن از مدل در متد های دیتابیس در تست نویسی -
#52464
- آپدیت کردن docblock های
HigherOrderCollectionProxy
در کالکشن ها -#52484
- اضافه شدن متد "
expectsSearch()
" در کامند ها -#51669
محمدحسین خادم المهدی
عالی بود ممنون ♥
میلاد خسروی
خوشحالم که خوشت اومده