Những thay đổi của Laravel ở phiên bản 5.5 - Phần 1

Khi bạn đọc bài này thì có lẽ bạn đã, đang hoặc sẽ làm việc với Laravel hoặc đang cần tìm hiểu xem dự án của mình nên sử dụng framework nào và Laravel 5.5 có phải sự lựa chọn phù hợp hay không... Dù là lí do gì thì trước tiên chúng ta cũng nên đi sơ qua 1 chút về những điểm nổi bật của Laravel xem sao. Laravel: Được coi là một PHP framework tốt nhất hiện nay mặc dù mới chỉ được ra mắt vào năm 2011. Nó hội tụ những yếu tố cần thiết để một lập trình viên có thể sử dụng một cách thuận lợi nhất:

  • Mã nguồn mở, miễn phí.
  • Cộng đồng hỗ trợ và phát triển lớn mạnh.
  • Tài liệu trên trang chủ Laravel dễ dàng làm quen.
  • Code sạch, cấu trúc dễ sử dụng và phát triển.
  • Dễ dàng tích hợp với các thư viện của bên thứ ba
  • Route, Blade template, Migration quản lý database, Eloquent ORM... thực sự tuyệt vời
  • ...

Tại sao lại là 5.5: Đây là bản cập nhật được cộng đồng Laravel vô cùng mong chờ bởi vì nó là phiên bản LTS (Long Term Support hay Hỗ trợ dài hạn) thứ hai sau khi phiên bản Laravel 5.1 là phiên bản LTS đầu tiên đã hết hạn hỗ trợ trong tháng 7 vừa qua.

Sơ qua một chút như vậy, chúng ta sẽ đi vào những thay đổi chính của bản cập nhật Laravel 5.5 mà cá nhân mình khá thích ngay bây giờ 🕺

Laravel 5.5 + PHP 7.x

Mặc dù hiện nay hầu hết các máy chủ đều đang cài đặt PHP ở phiên bản 5.6 do tính ổn định cao tuy nhiên để framework luôn được cập nhật những công nghệ mới nhất và những tính năng thuận tiện nhất thì những nhà phát triển Laravel đã yêu cầu các máy chủ cập nhật lên phiên bản PHP 7.x.

Phiên bản PHP 7.x được đánh giá giúp giảm độ trễ, tăng tốc độ hoạt động của trang web và giảm lượng tài nguyên chiếm dụng trên máy chủ đi đáng kể.

Automatic Package Discovery

Từ phiên bản Laravel 5.4 trở về trước, mỗi khi cài đặt một package nào đó, chẳng hạn như Debugbar

composer require barryvdh/laravel-debugbar

Việc tiếp theo phải làm khi không có Package Auto-Discovery chính là đăng ký ServiceProvider và Facade trong config.app:

    'provider' => [
        Barryvdh\Debugbar\ServiceProvider::class,
    ],
    'aliases' => [
        'Debugbar' => Barryvdh\Debugbar\Facade::class,
    ]

Tuy nhiên, ở phiên bản 5.5 công việc này đã được làm tự động và mọi thứ đã sẵn sàng ngay sau dòng lệnh cài đặt đầu tiên 🕺

New Routing Methods

Lại tiếp tục vấn đề ở các phiên bản 5.4 trở về trước, khi muốn trả về một view, chúng ta thường xử lý trong routes/web.php như sau:

    Route::get('/', function () {
        return view('home');
    });
    
    // Hoặc tổ lái sang HomeController
    Route::get('/', '[email protected]');
    // Sau đó viết mỗi 1 dòng ở function index trong HomeController
    return view('home');

Ở phiên bản 5.5, Route::view được sinh ra nhằm đơn giản hóa vấn đề này bằng cách:

    Route::view('/', 'home');

Auth and Guest Blade Directives

Việc kiểm tra quyền người dùng được sử dụng rất nhiều trong Blade view, vì vậy việc bổ sung 2 Blade directives là @auth@guess tuy nhỏ nhưng mang lại sự tiện dụng hơn so với việc kiểm tra quyền theo style cổ điển.

// Style cổ điển
@if(auth()->check())
    {{ -- authenticated --}}
@endif

@if(auth()->guest())

// Style 5.5
@auth
    Welcome {{ user()->name }}!
@endauth

@guest
    Welcome Guest!
@endguest

New Frontend Presets

Thay vì cài đặt sẵn Vue.js và Bootstrap trong một số file cấu hình và ứng dụng mẫu giống như Microsoft cài sẵn IE 😠 Dù có thể gỡ ra nhưng mà vậy thì hơi lằng nhằng đúng không. Ở phiên bản 5.5, Laravel giúp bạn có thể tùy biến những gì mình cần bằng command preset.

// React Preset
php artisan preset react

// Bootstrap Preset
php artisan preset bootstrap

// Remove all Laravel Vue and Bootstrap Scaffolding
php artisan preset none

Tạm kết

Dù Laravel 5.5 đã ra mắt được một thời gian, tuy nhiên chưa phải ai cũng sẵn sàng nhảy vào hoặc cập nhật dự án của mình lên ngay điển hình như những dự án đang sử dụng bản 5.4. Dù vậy thì những anh em đang sử dụng phiên bản 5.2 hoặc 5.3 nên cân nhắc vì đây có lẽ sẽ là bến đỗ thích hơp hơn cho dự án. Trên đây là một số thay đổi nho nhỏ mà mình cảm thấy chúng khá hữu ích và thú vị. Ở phần tới mình sẽ đưa những thay đổi lớn hơn vào trong bài viết. Cảm ơn mọi người đã đọc bài. Chúc vui vẻ!