لاراول ۱۳.۱۳ و متد Bus::bulk()
خلاصهٔ کاملتر
تیم لاراول نسخهی v13.13.0 رو منتشر کرد. ستارهی این نسخه متد Bus::bulk() هست که یه آرایه از جابها رو میگیره و اونها رو بر اساس connection و queue گروهبندی میکنه تا با متد پایهای bulk() صف، یکجا push بشن. فرقش با Bus::batch() اینه که پیشرفت batch رو توی دیتابیس ردگیری نمیکنه، پس دقیقاً برای موقعیتی خوبه که میخوای کلی جاب رو بدون اون سربار به صف بفرستی.
use Illuminate\Support\Facades\Bus;
Bus::bulk(array_map(fn (User $user) => new ProcessUser($user), $users));تغییر کاربردی بعدی، اضافه شدن attachFromStorage() و attachFromStorageDisk() به کلاس MailMessageِ نوتیفیکیشنهاست. تا الان این هلپرهای اتچ فقط روی mailableها بودن و حالا نوتیفیکیشنها هم میتونن مستقیم از روی Storage فایل پیوست کنن.
مورد سوم اینه که حالا کلاینتی که Http::buildClient() برمیگردونه، هرجا یه Psr\Http\Client\ClientInterface لازم باشه قابل استفادهست. یعنی میتونی HTTP client لاراول رو به یه پکیج third-party که کلاینت PSR-18 میخواد بدی، تا درخواستهاش هم از همون middleware و handler stack بقیهی اپت رد شن.
بقیهی نسخه شامل پشتیبانی از memoization توی attribute مربوط به Cache، پشتیبانی از vector index برای MariaDB توی schema builder، و یه دسته رفعباگه: اصلاح عملگرهای وارونهی مقایسهی نسبت ابعاد تصویر در ولیدیشن، رفع کرش whereDate و whereTime وقتی ستون یه Expression باشه، و چند مورد دیگه.
این یه ریلیز معمولی و افزایشی از شاخهی ۱۳.x هست؛ چیز شکنندهای نداره و بیشتر راحتی توسعهدهنده و چندتا رفعباگ رو میاره. جزئیات کامل توی changelog رسمی و release notes نسخه هست.
نکات کلیدی:
- Bus::bulk() کلی جاب رو یکجا و گروهبندیشده صف میکنه، بدون ردگیری در دیتابیس
- نوتیفیکیشنها حالا با attachFromStorage() میتونن از Storage فایل اتچ کنن
- HTTP client لاراول بهعنوان کلاینت PSR-18 قابل استفاده شد
- پشتیبانی از vector index برای MariaDB به schema builder اضافه شد
- چند رفعباگ در ولیدیشن و query builder هم اومده




