Laravel 5.5 có gì mới ?

Laravel 5.5 có gì mới ?

30/8 vừa qua Laravel 5.5 đã release bản này giống như bản Laravel 5.1 là bản Long Time Support.

Dịch nhanh một số điểm mới của Laravel 5.5 từ blog Laravel News để có thể tóm lược một số thay đổi trong phiên bản này.

Whoops Package

Từ phiên bản Laravel 5.5 gói filp/whoops sẽ được đưa trở lại vào framework để bạn có thể debug dễ dàng hơn.

Collection Dumping

Còn một tính năng debug khác mà bạn có thể đã thấy ở các phiên bản trước bằng cách add thêm package hoặc có các macro được chia sẻ là phương thức dumping collection.

<?php

Song::all()
    ->filter
    ->platinum
    ->dump()
    ->filter(function ($song) {
        return $song->released_on >= \Carbon\Carbon::parse('-10 years');
    })->dd();

Exception Rendering

Exceptions hiện nay có thể render như một respone nếu như trong các Exception này có định nghĩa một phương thức public response. Ở các phiên bản trước, bạn cần kiểm tra trong phương thức App\Exceptions\Handler::render() và sẽ gửi response xuống client dựa theo exception type.
Trong bản 5.5 thì bạn chỉ cần throw một exception mới và nó có thể respond mà không cần thêm login trong handler.

<?php

// throw new TerribleSongException($song) in a controller...

namespace App\Exceptions;

use App\Song;

class TerribleSongException extends \Exception
{
    /**
     * @var \App\Song
     */
    protected $song;

    public function __construct(Song $song)
    {
        $this->song = $song;
    }

    /**
     * @param \Illuminate\Http\Request $request
     */
    public function render($request)
    {
        return response("The song '{$this->song->title}' by '{$this->song->artist}' is terrible.");    
    }
}

Bạn cũng có thể implement Responsable interface trong exception class, Laravel sẽ tự động respond.

Còn tiếp các tính năng dưới.... ( đang được dịch)

  • Responsable Interface
  • Request Validation Method
  • Custom Validation Rule Objects and Closures
  • Auth and Guest Blade Directives
  • Frontend Presets
  • Separate Factory Files
  • Lệnh migrate:fresh Migration
  • Automatic Package Discovery