درحال بارگذاری

افزوده شدن Eager Lazy Collections به لاراول 6.1

تاریخ: یکشنبه, 14 مهر 1398

نویسنده: مصطفی دربان حسینی... بازیدها: 670 - نظرات : 0 دسته بندی: برنامه نویسی


طبق اعلام تیم توسعه لارول از نسخه بعدی لاراول (به روزرسانی نسخه 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 6 relase notes

لیست تغییرات کلی در Laravel v6.1.0:

افزوده شده:

  • Added Illuminate\Support\LazyCollection::eager() method (#29832)
  • Added purge() and getChannels() methods to Illuminate\Log\LogManager (#30132, a52a0dd)
  • Added Illuminate\Foundation\Testing\TestResponse::assertNoContent() method (#30125)
  • Added InteractsWithQueue to SendQueueNotifications (#30140)
  • Added SendQueueNotifications::retryUntil() method (#30141)
  • Added methods for sending cookies with test requests (#30101)
  • Added support of job middleware for queued notifications (#30070)

برطرف شده:

  • Fixed migration class duplicate check in make:migration command (#30095)
  • Fixed monolog v2 handler preparation (#30123)
  • Fixed return of callback value for DurationLimiter (#30143)

تغیرکرده:

  • Added runtime information output for seeders (#30086)
  • Added strict parameter to Illuminate\Foundation\Testing\TestResponse::assertJsonPath() (#30142)
  • Added deletedAtColumn optional parameter to Foundation\Testing\Concerns\InteractsWithDatabase::assertSoftDeleted() (#30111)

بهبود یافته:

  • Improved AuthServiceProvider::registerEventRebindHandler() in case if guard is not initialized (#30105)

نظر شما چیست؟ شما می توانید نظرات ،پیشنهادات و اطلاعات خود را در رابطه با این مطلب و موضوعات مربوط از طریق قسمت نظرات با ما و سایر بازدیدکنندگان در میان بگذارید.


نویسنده: مصطفی دربان حسینی... بازیدها: 670 - نظرات : 0 دسته بندی: برنامه نویسی

جستجو
کلاس برتر
ارائه دهنده بهترین و به روز ترین ویدیو های و مقالات آموزشی و همچنین مقالات مختلف در رابطه با تکنولوژی ،معماری ،مدیریت و سایر رشته های کاربردی.ما برای شما بهترین ها را میخواهیم.

سایر خدمات مجموعهخدمات زیر تحت مدیریت برد تخصصی ارائه می شود.
طراحی وب سایت
راه اندازی و پشتیبانی شبکه
هوشمند سازی منازل
افزایش کارایی نیرو انسانی
تعمیرات دستگاه های الکترونیکی
طراحی داخلی
تبلیغات فضای مجازی
برنامه نویسی