در لاراول 8.50 قابلیت لغو اعلان های معلق، مدل های هرس شونده، پشتیبانی از علامت مشترک (commonmark) ورژن ۲ و تغییرات دیگه در شاخه 8.x ارائه شده.
لغو اعلان ها (Cancel Notifications)
Graham Bradley امکان لغو بلافاصه اعلان ها رو قبل از ارسال فراهم کرده. برای تعیین اینکه آیا باید اعلانی ارسال بشه، حالا میتونید به راحتی منطق دلخواه خودتون رو داخل کلاس اعلان مورد نظر با استفاده از متد shouldSend پیاده سازی کنید:
public function shouldSend($notifiable, $channel)
{
// custom logic
return true;
}
برای جزئیات بیشتر در مورد اینکه این تغییر کجا میتونه بدردتون بخوره، پیشنهاد میکنم توضیحات درخواست pull گیت هاب رو بررسی کنید.
مدل های قابل هرس (Prunable Models)
Nuno Maduro با “هرس کردن” مدل های لاراول راهی برای حذف سوابق منسوخ شده ارائه کرد. این قابلیت موقع هرس کردن مدل ها، از طریق یک دستور برنامه ریزی شده (scheduled command) به طور خودکار رکوردهای مدل قدیمی و منسوخ شده رو از پایگاه داده حذف میکنه.
در اینجا مثالی از هرس مدل، طبق توضیحات درخواست ارسال شده به گیت هاب رو بهتون نمایش میدم:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Prunable; // or MassPrunable
class Post extends Model
{
use Prunable; // or MassPrunable
/**
* Determines the prunable query.
*
* @return \Illuminate\Database\Eloquent\Builder
*/
public function prunable()
{
return $this->where('created_at', '<=', now()->subMonth());
}
}
همراه با یک کار برنامهریزی شده برای اجرای هرس مدل، به طور خودکار میتونید رکوردهای دیتابیس رو مرتب نگه دارید. Pull Request #37889 جزئیات خوبی درباره نحوه کار «هرس مدل» ارائه داده.
پشتیبانی از علامت مشترک ورژن ۲ (Commonmark V2)
Colin O’Dell علامت مشترک ورژن ۱ و ۲ رو توسعه داده. وقتی نسخه عادی علامت مشترک منتشر شد، کاربرای لاراول ورژن ۸ به بعد میتونن نسخه اصلی کتابخونه CommonMark رو نصب کنن. (در حال حاضر که این خبر رو مینویسم، نسخه بتا منتشر شده)
حذف کلیدهای آرایه ای که در اعتبار سنجی گنجانده نشده
Mohamed Said این متد انتخاب شده رو گسترش داده. شما میتونید این قابلیت رو به یک ارائه دهنده خدمات (service provider) اضافه کنید. با این کار میتونید کلیدهای آرایه ای رو که در قوانین اعتبار سنجی وجود نداره، حذف کنید:
// In a service provider
Validator::excludeUnvalidatedArrayKeys();
// Will not return keys without validation rules
// For example, users.*.email would not be returned (if "email" were a key)
request()->validate([
'users' => 'required|array',
'users.*.name' => 'required',
]);
از اونجایی که این یه تغییر بالقوه و مهم هستش، به همین علت در لاراول 8 اضافه شده.
شما میتونید لیست کامل ویژگی ها و به روزرسانی های جدید لاراول 8.50 رو در زیر شاخه 8.49.0 و 8.50.0 صفحه گیت هاب مشاهده کنید.
منبع: laravel-news.com