Laravel 5.6 đã chính thức ra mắt phiên bản mới nhất! Phiên bản này có rất nhiều feature mới, và dưới đây chúng tôi đã đưa ra những feature nổi bật hơn hẳn các bản trước. Để xem được danh sách đầy đủ tất cả các thay đổi, hãy truy cập vào changelog (GitHub).
Những cải thiện về logging
Tính năng nổi bật nhất trong Laravel 5.6 đó là những cải thiện về logging. Với những người mới,cấu hình logging v5.6 chuyển từ file config/app.php
sang file mới config/logging.php
.
Bạn sẽ thiết lập “stacks” để gửi message log đến nhiều công cụ quản lý và theo dõi. Ví dụ, bạn có thể gửi đi tất cả các message debug đến log hệ thống và gửi các log lỗi đến slack.
Bạn có thể đọc thêm thiết lập và tùy chỉnh log bằng cách truy cập vào tư liệu logging.
Single Server Task Scheduling
Nếu bạn có một task scheduler chạy trên nhiều server, task sẽ chạy riêng rẽ trên mỗi server. Bạn có thể cấu hình task chỉ nên chạy trên một server bằng method onOneServer()
, về phần này chưa được dùng nhiều nên anh em nào đã có kinh nghiệm xin vui lòng chỉ giáo thêm ở comment:
$schedule->command('report:generate') ->fridays() ->at('17:00') ->onOneServer();
Lưu ý: bạn phải sử dụng cache driver memcached
hoặc redis
như một cache driver mặc định để tận dụng lợi thế của task mỗi single server task scheduling trong phiên bản Laravel 5.6.
Dynamic Rate Limiting
Laravel 5.6 công bố dynamic rate limiting giúp bạn linh hoạt hơn và dễ dàng giới hạn những chức năng cơ bản của một user:
Route::middleware('auth:api', 'throttle:rate_limit,1') ->group(function () { Route::get('/user', function () { // }); });
Trong ví dụ trên, rate_limit
là một thuộc tính của model AppUser
để xác định số lượng request được cho phép trong một khoảng giới hạn thời gian.
Broadcast Channel Classes
Giờ đây bạn có thể sử dụng các class channel trên file routes/channels.php
của mình thay vì sử dụng closure.
Để tạo nên một class channel mới, Laravel 5.6 cung cấp một lệnh make:channel
mới:
php artisan make:channel OrderChannel
Bạn có thể khai báo channel trên file routes/channels.php
như sau:
use AppBroadcastingOrderChannel; Broadcast::channel('order.{order}', OrderChannel::class);
API Controller
Giờ đây bạn có thể tạo ra một resource controller cho các API mà không bao gồm những thao tác create
và edit
không cần thiết, những cái mà chỉ apply vào các resource controller trả về HTML. Để tạo ra một resource controller, sử dụng flag --api
:
php artisan make:controller API/PhotoController --api
Eloquent Date
Bạn có thể chủ động tự tùy chỉnh format của ngày và ngày giờ Eloquent:
protected $casts = [ 'birthday' => 'date:Y-m-d', 'joined_at' => 'datetime:Y-m-d H:00', ];
Format này được dùng trên phần chuyển đổi model thành một array hoặc JSON data.
Blade Component Aliases
Giờ đây bạn có thể đặt bí danh cho các blade components giúp việc truy cập tiện lợi hơn. Ví dụ, nếu bạn lưu component vào resources/views/components/alert.blade.php
bạn có thể sử dụng method component()
để đặt một tên ngắn hơn:
Blade::component('components.alert', 'alert');
Sau đó bạn có thể render nó bằng tên được đặt:
@component('alert') <p>This is an alert component</p> @endcomponent
Argon2 Password Hashing
Laravel 5.6 hỗ trợ thuật toán mã hóa mật khẩu cho PHP 7.2+ (chỉ có ver php này hỗ trợ thuật toán trên). Bạn có thể kiểm soát mã hóa driver nào được sử dụng mặc định trong file config/hashing.php
mới.
Bạn có thể đọc thêm về hỗ trợ thuật toán Argon2i hashing của Laravel 5.6 trong bài báo của chúng tôi.
Các method UUID
Hai method mới đã có mặt trên class IlluminateSupportStr
để tạo ra Universal Unique Identifiers (UUID):
// The methods return a RamseyUuidUuid object return (string) Str::uuid(); return (string) Str::orderedUuid();
Method orderedUuid()
sẽ tạo timestamp cho UUID đầu tiên giúp cho việc database indexing dễ dàng hơn và hiệu quả hơn.
Collision
Chúng tôi mới viết về Collision coming to Laravel 5.6 là một dev
dependency, cung cấp báo cáo lỗi trực quan trong bảng điều khiển:
Bootstrap 4
Tất cả các frontend scaffolding và example Vue component giờ đây đều sử dụng Bootstrap 4. Chúng ta đã dùng Bootstrap 4 trong bản beta, và thậm chí còn tạo một Bootstrap 4 Laravel preset. Thật tốt khi thấy Bootstrap 4 ổn định đi kèm với Laravel 5.6!
Tìm hiểu thêm về Laravel 5.6
Để nâng cấp Laravel lên v5.6, bạn có thể tham khảo hướng dẫn nâng cấp. Việc nâng cấp từ 5.5 lên 5.6 ước tính tốn khoảng từ 10 đến 30 phút. Hiện tại các việc làm IT lương cao liên quan đến Laravel cũng được các doanh nghiệp tuyển dụng rất nhiều.
Tham khảo thêm các vị trí ứng tuyển lập trình Laravel lương cao tại đây
TopDev via Laravel News