Phiên bản PHP framework laravel 5.7 yêu cầu PHP >= 7.1.3.
Sau khi phát hành Laravel 5.7, Laravel 5.6 sẽ tiếp tục fix bug cho đến ngày 7/8/2018 và sửa các lỗi bảo mật cho đến ngày 7/2/2019.
Tương tự, Laravel 5.7 sẽ nhận hỗ trợ fix bug và các lỗi bảo mật cho đến tháng 2/2019 và tháng 8/2019.
Laravel đã liên tục bổ sung các tính năng hữu ích kể từ lần phát hành đầu tiên. Phiên bản 5.7 sắp tới cũng sẽ có rất nhiều tính năng thú vị.
Các tính năng chính được nâng cấp ở phiên bản này: Laravel Nova, tùy chọn xác minh email cho thành viên đã đăng nhập, hỗ trợ cho guest (người dùng chưa đăng nhập) trong gates và policies, tích hợp Symfony dump-server, đa ngôn ngữ khi thông báo.
Laravel Nova
Laravel Nova hỗ trợ cho cả laravel 5.6, sử dụng Vuejs, Vue Router và Tailwind (một framework CSS rất tiện ích) làm giao diện.
Laravel Nova xây dựng sẵn CRUD cơ bản đến tìm kiếm phức tạp, bộ lọc filters, số liệu, thống kê, video...
Bạn có thể tìm hiểm thêm về Package này trên link chính thức https://nova.laravel.com/
Email Verification
Nếu bạn đã quá quen thuộc với hệ thống authentication mặc định của laravel. Thì hiện nay, Laravel đã có tùy chọn xác minh email cho người dùng.
Một cột mới email_verified_at đã được thêm vào bảng users. Bạn không cần phải tự thêm bằng tay vào, nó đã đi kèm trong migrations rồi. Bạn chỉ cần chạy câu lệnh: php artisan migrate là ok
User Model cần implement MustVerifyEmail interface để đề xuất user mới xác minh địa chỉ email của họ. Vì vậy, User Model của bạn sẽ như dưới đây:
<?php
// App/User.php namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable implements MustVerifyEmail
{
// ...
}
Sau khi implement MustVerifyEmail interface, user mới đăng ký nhận được email có
chứa liên kết xác minh để kích hoạt tài khoản. Vì vậy, khi người dùng nhấn vào liên kết, tài khoản sẽ được kích hoạt.
Cùng với việc xác minh email, Laravel 5.7 cũng cung cấp middleware giới hạn cho các email được xác minh. Vì vậy, điều này rất hữu ích và hữu ích cho các function trong backend.
chứa liên kết xác minh để kích hoạt tài khoản. Vì vậy, khi người dùng nhấn vào liên kết, tài khoản sẽ được kích hoạt.
Cùng với việc xác minh email, Laravel 5.7 cũng cung cấp middleware giới hạn cho các email được xác minh. Vì vậy, điều này rất hữu ích và hữu ích cho các function trong backend.
'email_verified'=> \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
Để các routes của bạn chỉ cho các email được xác minh, hãy gắn middleware trong các routes.Route::get('info', function () {
//
})->middleware('email_verified');
Guest User Gates / Policies
Guest User Gates là một tính năng hữu ích khác có trong Laravel 5.7. Hiện tại, Laravel trả về false khi người dùng cố gắng truy cập các route mà chưa được xác thực. Nhưng trong laravel 5.7, bạn có thể ép kiểu về mode hoặc bất cứ thứ gì hoặc đơn giản là trả về null trong các mục đích phù hợp.
Gate::define('update-page', function (?Admin $admin, Page $page) {
// ...
});
Symfony Dump Server
Bạn đã bao giờ nghĩ đến việc dump data ra một file HTML bên ngoài? Sắp tới, Laravel 5.7 sẽ có một tính năng tích hợp cho việc này. Bạn có thể chỉ cần làm 1 việc đơn giản là đổ dữ liệu của bạn vào file html.
Lệnh này rất tiện dụng và rất hữu ích cho việc debug mà không làm gián đoạn thời gian chạy ứng dụng.
Lệnh này chạy ngầm trên server. Nó nhận dữ liệu được gửi từ ứng dụng và hiển thị thông qua bảng điều khiển (console). Bạn không bao giờ phải lo lắng khi chạy lệnh này, vì khi lệnh này không chạy thì dump() hoạt động như mặc định.
Bạn có thể tìm thêm thông tin về package này trên github.
Bạn đã bao giờ nghĩ đến việc dump data ra một file HTML bên ngoài? Sắp tới, Laravel 5.7 sẽ có một tính năng tích hợp cho việc này. Bạn có thể chỉ cần làm 1 việc đơn giản là đổ dữ liệu của bạn vào file html.
Lệnh này rất tiện dụng và rất hữu ích cho việc debug mà không làm gián đoạn thời gian chạy ứng dụng.
php artisan dump-server
# Or send the output to an HTML file
php artisan dump-server --format=html > dump-server-test.html
Lệnh này chạy ngầm trên server. Nó nhận dữ liệu được gửi từ ứng dụng và hiển thị thông qua bảng điều khiển (console). Bạn không bao giờ phải lo lắng khi chạy lệnh này, vì khi lệnh này không chạy thì dump() hoạt động như mặc định.
Bạn có thể tìm thêm thông tin về package này trên github.
Notification Localization
Trong laravel 5.7, bạn có thể gửi thông báo khác với ngôn ngữ hiện tại. Để làm điều này, bạn cần phải chỉ định ngôn ngữ mà bạn sẽ sử dụng trong thông báo trong phương thức locale(). Ví dụ:
$user->notify((new CreatePost($admin))->locale('jp'));
Hoặc cũng có thể thông qua Notification facade:
Notification::locale('jp')->send($admin, new CreatePost($user));
Cải thiện thông báo lỗi
Bạn có thể theo dõi các thông báo lỗi dễ dàng hơn trong laravel 5.7. Lý do là vì Laravel 5.7 sử dụng package mới được phát triển bởi Joseph Silber. Nó sẽ hiển thị thông báo lỗi trên dynamic calls và Eloquent models.
URL Generator and Callable Syntax
Trong Laravel 5.7, chúng ta có thể lấy url theo cú pháp mới. Lợi ích chính của cú pháp mới này là bạn có thể điều hướng trực tiếp đến controller của nó.
<?php
// PagesController is a controller
// index is a method name inside controller
$url = action([PagesController::class, 'show']);
Thay đổi đường dẫn resources
"Khi bạn nâng cấp phiên bản Laravel, bạn không cần phải tạo lại thư mục resources/assets theo cấu trúc thư mục mới. Nó sẽ hoạt động theo cấu trúc cũ." - Taylor Ottwell.
Paginator Links
Tính năng nhỏ bé này trong laravel 5.7 có thể hữu ích trong nhiều trường hợp. Tính năng này sẽ giúp kiểm soát số lượng liên kết trang được hiển thị ở mỗi bên của dấu phân cách.
Nếu bạn đã sử dụng paginations trước đó thì bạn có thể nhận thấy sẽ có link của 3 trang theo mặc định. Nhưng, bạn có thể xác định rõ ràng trong laravel 5.7.
{{ $paginator->onEachSide(4)->links() }}
Filesystem Read / Write Streams
Flysystem của Laravel sẽ cung cấp các phương thức readStream và writeStream:
Storage::disk('s3')->writeStream( 'remote-file-test.zip', Storage::disk('local')->readStream('local-file-test.zip') );
Đó là những gì mình đã cóp nhặt được từ: viblo và trang chủ của laravel.
Không có nhận xét nào:
Đăng nhận xét