طبق اعلام تیم توسعه لارول از نسخه بعدی لاراول (به روزرسانی نسخه 6.1) یک متد جدید به نام eager() به Lazy Collections افزوده خواهد شد. البته خود LazyCollections نیز یک ویژگی جدید است که در نسخه 6 لاراول به این فریمورک افزوده شده و حالا شاهد بهبودهایی در آن برای نسخه های بعدی لاراول خواهیم بود. برای مثال همین متد جدید با نام eager یکی از این بهبودها است. به کمک این دستور می توان به تمامی مقادیر lazy collection’s دسترسی داشت و آنها را شمرد و همچنین می توان یک نمونه جدید از lazy collection’s value تعریف کرد که بتواند توسط یک آرایه پشتیبانی شود.
برای درک بهتر به مثال زیر توجه کنید:
$users = User::cursor();
$users = $users->eager();
$count = $users->count();
$users->each(function ($user) {
//
});
بدون eager() از مقادیر فوق دوبار نتیجه گیری می شود.
در ادامه متد purge() برای پاک سازی و متد getChannels() به کلاس LogManager افزوده شده اند تا مشکل پاکسازی درایور/کانال (driver/channel) برطرف شود.به همین منظور شما می توانید با کلیک روی این خط به آدرس برگه درخواست رفع خطای مربوط در گیت هاب مراجعه کنید.
برای درک بهتر می توانید به مثال زیر توجه کنید:
public function testLogMnagerPurgeResolvedChannels()
{
$manager = new LogManager($this->app);
$this->assertEmpty($manager->getChannels());
$manager->channel('single')->getLogger();
$this->assertCount(1, $manager->getChannels());
$manager->purge('single');
$this->assertEmpty($manager->getChannels());
}
در ادامه امکانات افزوده شده به این نسخه متد assertNoContent() به کلاس TestResponse افزوده شده است که می توانید برای درک بهتر کار آن به مثال زیر توجه کنید:
// Before
$response = $this->get('api/endpoint');
$response->assertStatus(409);
$this->assertEmpty($response->content());
// After
$response = $this->get('api/endpoint');
$response->assertNoContent(409);
کد بالا روش مدیریت نمایش خطای 409 در یک حالت خاص است که روش مدیریت آن در قبل و بعد از استفاده از ایم متد مورد بررسی قرار گرفته است.
در ادامه نیز یک متد به نام withCookies به کلاس TestResponse افزوده شده است و باعث ساده تر شدن ارسال کوکی ها در تست های HTTP می شود. برای درک بهتر این متد به مثال زیر توجه کنید:
// Before
$cookies = [
'name1' => encrypt('value1'),
'name2' => encrypt('value2')
];
$response = $this->call('get', 'test', [], $cookies);
// After
$response = $this->withCookies([
'name1' => 'value1',
'name2' => 'value2'
])->get('test');
شما می توانید برای دریافت لیست کامل تغییرات و ویژگی ها در نسخه بعدی لاراول و لیست کاملی از به روزرسانی ها جدید و همچنین بررسی تکلی تفاوت ها بین نسخه لاراول 6.0.4 و نسخه 6.1 را در آدرسی که برای شما در زیر آماده کرده ایم مشاهده کنید:
بررسی لیست کامل به روزرسانی ها و ویژگی ها
و در آدرس زیر نیز می توانید توضیحات کامل نسخه های منتشر شده لاراول را مشاهده کنید:
لیست تغییرات کلی در Laravel v6.1.0:
افزوده شده:
برطرف شده:
تغیرکرده:
بهبود یافته:
نظر شما چیست؟ شما می توانید نظرات ،پیشنهادات و اطلاعات خود را در رابطه با این مطلب و موضوعات مربوط از طریق قسمت نظرات با ما و سایر بازدیدکنندگان در میان بگذارید.