Laravel 5.8.30 có gì mới

Laravel 5.8.30 release ngày 30/7/2019 với một số thay đổi cũng như tính năng mới được thêm vào. Đây là một bản release khá lớn với nhiều thay đổi, hãy kiểm tra changelog để biết rõ chị tiết.

Đầu tiên hai phương thức testing được thêm vào: option()optionJson() để thực hiện các HTTP OPTION requests:

$this->option('/example');

$this->optionJson('/api/example');

Tiếp theo, các phương thức migration mới được thêm vào để tạo UUID morphs uuidMorphs()nullableUuidMorphs():

// UUID Morphs
$table->uuidMorphs('imageable');

// Or nullable UUID Morphs
$table->nullableUuidMorphs('imageable');

Class MailgunTransport giờ đây có khả năng thiết lập endpoint nếu bạn cần chuyển đổi domain và API endpoint:

$mailTransport = app()->make('mailer')->getSwiftMailer()->getTransport();
$mailTransport->setDomain('yourdomain.com');
$mailTransport->setEndpoint('api.eu.mailgun.net');

Thêm validation rule cho WEBP image.

Tiếp đó, method test assertSessionHasInput() được thêm vào class TestResponse:

// Without the new method...
$response->assertSessionHas('_old_input', [
    'connection_id' => $connection->id,
    'repository' => $repository,
    'source_branch' => $branch,
]);

// As of v5.8.30 :)
$response->assertSessionHasInput([
    'connection_id' => $connection->id,
    'repository' => $repository,
    'source_branch' => $branch,
]);

Tiếp theo, hổ trợ custom Redis driver, xem chi tiết tại pull request #29275

Feature cuối cùng được thêm vào ở phiên bản này là hổ trợ column collation trong Postgres:

Schema::create('users', function (Blueprint $table) {
    $table->string('name')->collation('nb_NO.utf8');
});

Dưới đây là tổng hợp những thay đổi trong phiên bản Laravel 5.8.30 này:

Added

  • Added MakesHttpRequests::option() and MakesHttpRequests::optionJson() methods (#29258)
  • Added Blueprint::uuidMorphs() and Blueprint::nullableUuidMorphs() methods (#29289)
  • Added MailgunTransport::getEndpoint() and MailgunTransport::setEndpoint() methods (#29312)
  • Added WEBP to image validation rule (#29309)
  • Added TestResponse::assertSessionHasInput() method (#29327)
  • Added support for custom redis driver (#29275)
  • Added Postgres support for collation() on columns (#29213)

Fixed

  • Fixed collections with JsonSerializable items and mixed values (#29205)
  • Fixed MySQL Schema Grammar $modifiers order (#29265)
  • Fixed UPDATE query bindings on PostgreSQL (#29272)
  • Fixed default theme for Markdown mails (#29274)
  • Fixed UPDATE queries with alias on SQLite (#29276)
  • Fixed UPDATE and DELETE queries with join bindings on PostgreSQL (#29306)
  • Fixed support of DateTime objects and int values in orWhereDay(), orWhereMonth(), orWhereYear() methods in the Builder (#29317)
  • Fixed DELETE queries with joins on PostgreSQL (#29313)
  • Prevented a job from firing if job marked as deleted (#29204, 1003c27)
  • Fixed model deserializing with custom Model::newCollection() (#29196)

Reverted

Changed

  • Allocate memory for error handling to allow handling memory exhaustion limits (#29226)
  • Teardown test suite after using fail() method (#29267)

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