لاراول 13.32 منتشر شد
خلاصهٔ کاملتر
تیم لاراول نسخهی v13.32.0 رو منتشر کرد. مهمترین چیزی که توش اومده یه broadcast driver تازه برای Mercure ـه؛ Mercure خودش یه پروتکل ریلتایم حساب میشه که به جای WebSocket روی SSE کار میکنه، یعنی سرور از روی یه کانکشن HTTP معمولی بهت رویداد push میکنه. این درایور رو Kévin Dunglas فرستاده و کانفیگش تو config/broadcasting.php این شکلیه:
// config/broadcasting.php
'mercure' => [
'driver' => 'mercure',
'url' => env('MERCURE_URL'),
'secret' => env('MERCURE_JWT_SECRET'),
],اگه از FrankenPHP استفاده کنی، هاب داخلیش نه url میخواد نه secret. این درایور از کانالهای presence هم پشتیبانی میکنه و کانالهای private-encrypted-* با رمزنگاری سرتاسری رو هم پوشش میده. یه patch جدا هم روی Laravel Echo اومده تا سمت کلاینت کار کنه، و نصبش به دستور نصب broadcasting اضافه شده.
تغییر کاربردی بعدی دوتا متد تازه روی FilesystemAdapter ـه: copyToDisk() و moveToDisk() که Jack Bayliss اضافه کرده. تا قبلش برای جابهجا کردن فایل بین دوتا دیسک باید دستی استریم میخوندی و دوباره مینوشتی، حالا یه خط کافیه:
// روی دیسک backup کپی میشه، نسخهی local سر جاش میمونه
Storage::disk('local')->copyToDisk('backup', 'reports/report.csv');
// همون کار، ولی فایل از دیسک local پاک میشه
Storage::disk('local')->moveToDisk('backup', 'reports/report.csv');با پارامتر سوم هم میتونی مسیر مقصد رو عوض کنی، و تو یه PR بعدی اجازه دادن به جای اسم دیسک، خود instance فایلسیستم رو پاس بدی.
سومین مورد، پشتیبانی از enum تو Queue::pause()، Queue::resume() و Queue::pauseFor() ـه. یعنی دیگه لازم نیست اسم صف و کانکشن رو به شکل رشته بنویسی و نگران تایپو باشی؛ همون enumهایی که قبلاً روی attributeهای Queue/Connection جواب میدادن اینجا هم قبول میشن.
بقیهی چنجلاگ بیشتر رفع باگه: درست شدن Str::password() که کاراکتر اضافه برمیگردوند، Str::camel() که حرف اول چندبایتی رو کوچیک نمیکرد، کرش collapseWithKeys() وقتی کالکشن بیرونی کلید رشتهای داره، و سینک نشدن انقضای tag تو کش Redis هنگام touch. دیف کامل بین 13.31.0 و 13.32.0 روی GitHub هست.
نکات کلیدی:
- درایور broadcast جدید برای Mercure که روی SSE کار میکنه، نه WebSocket
- با FrankenPHP هاب داخلی بدون url و secret بالا میآد
- پشتیبانی از کانالهای presence و کانالهای private-encrypted-*
- copyToDisk() و moveToDisk() روی FilesystemAdapter جای الگوی دستی خوندن و نوشتن استریم
- قبول شدن enum تو Queue::pause()، Queue::resume() و Queue::pauseFor()
- رفع باگ Str::password()، Str::camel() و collapseWithKeys()




