Một vài method mới được thêm vào Collection ở Laravel 5.8.28

Laravel v5.8.28 được phát hành ngày 09/07/2019 với một số method mới được thêm vào Collection cũng như một số thay đổi khác.

Với việc use trait Tappable trong class TestResponse, nay bạn có thể sử dụng method tap để đơn giản hóa việc test response như sau:

// With tap
$this->getJson('/api/users/index')
    ->assertStatus(200)
    ->tap(function (TestResponse $response) {
        $this->assertMatchesJsonSnapshot($response);
    });

// Without tap
$response = $this->getJson('/api/users/index')
    ->assertStatus(200);

$this->assertMatchesJsonSnapshot($response);

Tiếp theo, các method sau được thêm vào Collection: mergeRecursive(), replace(), và replaceRecursive().

Method mergeRecursive() implements function array_merge_recursive của PHP để có thể sử dụng với Laravel Collection.

Method replace()replaceRecursive() được thêm vào cũng tương tự implements tương ứng các function array_replacearray_replace_recursive để sử dụng với Collection.

$c = new Collection(['a', 'b', 'c']);

$newCollect = $c->replace([1 => 'd', 2 => 'e'])->all();
// ['a', 'd', 'e']

Method only() được thêm vào để get từ Session giá trị của những key được chỉ định trong một array:

$session->only(['example1', 'example2']);

Dưới đây là tất cả những thay đổi của phiên bản Laravel 5.8.28:

Added

  • Make TestResponse tappable (#29033)
  • Added Support\Collection::mergeRecursive() method (#29084)
  • Added Support\Collection::replace() and Support\Collection::replaceRecursive() methods (#29088)
  • Added Session\Store::only() method (#29107)

Fixed

  • Fixed cache repository setMultiple with an iterator (#29039)
  • Fixed cache repository getMultiple implementation (#29047)

Reverted

Changed

  • Fail job immediately after it timeouts if it wont be retried (#29024)

GitHub: https://github.com/laravel/framework/releases/tag/v5.8.28