نسخه 9.31 لاراول هم با چند ویژگی جذاب و نیمه جذاب بالاخره منتشر شد. در این مطلب سری میزنیم به مهمترین ویژگی های این بروزرسانی
اگر بخواید زمانی که اجرای یک request بیشتر از مدت زمان معینی طول کشید، یک کال بک رو اجرا کنید، نسخه جدید لاراول راهکار خیلی خوبی رو براتون در نظر گرفته:
use Carbon\CarbonInterval as Interval;
use Illuminate\Contracts\Http\Kernel;
public function boot()
{
$kernel = app()->get(Kernel::class);
$kernel->whenRequestLifecycleIsLongerThan(
Interval::seconds(1),
fn ($startedAt, $request, $response) => /* ... */
);
}
میشه گفت این قابلیت، مشابه قابلیتی با همین کارکرد هست که در لاراول 9.18 برای query ها در eloquent اضافه شده بود.
از این به بعد اگر بخوای موقع بروزرسانی یک مدل، مقدار updated_at در اون تغییر نکنه میتونی از متد withoutTimestamps استفاده کنی.
$post = Post::first();
Post::withoutTimestamps(
fn () => $post->update(['created_at' => now()])
);
با استفاده از متد جدید getAppends میتونی تمام پراپرتی هایی که به مدل append شدند رو مشاهده کنی:
$user->getAppends();
با استفاده از متد wrap در کلاس Str میتونی به ابتدا و انتهای string، رشته های دلخواهت رو اضافه کنی
Str::wrap('sirvan monfared', 'developer', 'from iran'); // 'deveoper sirvan monfared from iran'
str('sirvan monfared')->wrap('developer', 'from iran'); // 'deveoper sirvan monfared from iran'
توی این نسخه از لاراول میتونی برای vite هم ماکرو تعریف کنی و متدهای دلخواهت رو بهش اضافه کنی:
Vite::macro('image', fn ($image) => $this->asset("resources/imgs/{$image}"));
// Usage: <img src="{{ Vite::image('mypic.jpg') }}" ... >
البته که ویژگی ها و تغییرات لاراول در این نسخه، به همین موارد محدود نمیشه و موارد دیگه ای هم هست که مجال اشاره به اونها در این مطلب نبوده مثل fake batch و vite manifest hash و .... . برای مشاهده تمام تغییرات در نسخه 9.31 لاراول میتونید به این لینک مراجعه کنید.