• Hữu Ngọc Developer
  • 2 năm trước

Như bạn đã biết, Laravel đã chính thức phát hành bản Laravel 10 vào ngày 14/02/2023 với các cải tiến được thực hiện trong Laravel 9.x bằng cách giới thiệu các kiểu đối số và trả về cho tất cả các phương thức khung của ứng dụng, cũng như tất cả các tệp sơ khai được sử dụng để tạo các lớp trong toàn bộ khung. Ngoài ra, một lớp trừu tượng mới, thân thiện với nhà phát triển đã được giới thiệu để bắt đầu và tương tác với các quy trình bên ngoài. Hơn nữa, Laravel Pennant đã được giới thiệu để cung cấp một cách tiếp cận tuyệt vời để quản lý feature flags của ứng dụng của bạn.

PHP 8.1

Laravel 10.x yêu cầu phiên bản PHP tối thiểu là 8.1.

Types

Trong lần phát hành đầu tiên, Laravel đã sử dụng tất cả các tính năng gợi ý kiểu có sẵn trong PHP vào thời điểm đó. Tuy nhiên, nhiều tính năng mới đã được thêm vào PHP trong những năm tiếp theo, bao gồm các gợi ý kiểu nguyên thủy bổ sung, kiểu trả về và kiểu kết hợp.

Laravel 10.x cập nhật kỹ lưỡng khung ứng dụng và tất cả sơ khai được khung sử dụng để giới thiệu đối số và kiểu trả về cho tất cả chữ ký phương thức. Ngoài ra, thông tin gợi ý loại "khối tài liệu" không liên quan đã bị xóa.

Thay đổi này hoàn toàn tương thích ngược với các ứng dụng hiện có. Do đó, các ứng dụng hiện có không có các gợi ý kiểu này sẽ tiếp tục hoạt động bình thường.

Laravel Pennant

Một gói bên thứ nhất mới, Laravel Pennant, đã được phát hành. Laravel Pennant cung cấp một cách tiếp cận gọn nhẹ, được sắp xếp hợp lý để quản lý các feature flag của ứng dụng của bạn. Ngoài ra, Pennant bao gồm một trình điều khiển array trong bộ nhớ và một trình điều khiển database để lưu trữ tính năng liên tục.

Các tính năng có thể được xác định dễ dàng thông qua phương thức Feature::define:

use Laravel\Pennant\Feature;
use Illuminate\Support\Lottery;
 
Feature::define('new-onboarding-flow', function () {
    return Lottery::odds(1, 10);
});

Khi một tính năng đã được xác định, bạn có thể dễ dàng xác định xem người dùng hiện tại có quyền truy cập vào tính năng đã cho hay không:

if (Feature::active('new-onboarding-flow')) {
    // ...
}

Tất nhiên, để thuận tiện, các chỉ thị của Blade cũng có sẵn:

@feature('new-onboarding-flow')
    <div>
        <!-- ... -->
    </div>
@endfeature

Pennant cung cấp nhiều tính năng và API nâng cao hơn. Để biết thêm thông tin, vui lòng tham khảo tài liệu Pennant toàn diện .

Process Interaction

Laravel 10.x giới thiệu một lớp trừu tượng đẹp mắt để bắt đầu và tương tác với các quy trình bên ngoài thông qua một facade Process mới:

use Illuminate\Support\Facades\Process;
 
$result = Process::run('ls -la');
 
return $result->output();

Các quy trình thậm chí có thể được bắt đầu trong nhóm, cho phép thực hiện và quản lý thuận tiện các quy trình đồng thời:

use Illuminate\Process\Pool;
use Illuminate\Support\Facades\Process;
 
[$first, $second, $third] = Process::concurrently(function (Pool $pool) {
    $pool->command('cat first.txt');
    $pool->command('cat second.txt');
    $pool->command('cat third.txt');
});
 
return $first->output();

Ngoài ra, các quy trình có thể bị giả mạo để thuận tiện cho việc kiểm tra:

Process::fake();
 
// ...
 
Process::assertRan('ls -la');

Để biết thêm thông tin về cách tương tác với các quy trình, vui lòng tham khảo tài liệu toàn diện về process.

Test Profiling

Lệnh Artisan test đã nhận được một tùy chọn mới --profile cho phép bạn dễ dàng xác định slowest tests trong ứng dụng của mình:

php artisan test --profile

Để thuận tiện, slowest tests sẽ được hiển thị trực tiếp trong đầu ra CLI:

slowest tests

Pest Scaffolding

Theo mặc định, các project Laravel mới có thể được tạo với giàn giáo thử nghiệm Pest. Để chọn tham gia tính năng này, hãy cung cấp flag --pest khi tạo ứng dụng mới thông qua trình cài đặt Laravel:

laravel new example-application --pest

Dấu nhắc lệnh CLI

Để cải thiện trải nghiệm của nhà phát triển framework, tất cả các lệnh tích hợp sẵn của Laravel make không còn yêu cầu bất kỳ đầu vào nào. Nếu các lệnh được gọi mà không có đầu vào, bạn sẽ được nhắc nhập các đối số cần thiết:

php artisan make:controller

Horizon / Telescope Facelift

HorizonTelescope đã được cập nhật với giao diện mới mẻ, hiện đại bao gồm kiểu chữ, khoảng cách và thiết kế được cải thiện:

Horizon / Telescope Facelift

Trên đây là tất cả những cải tiến của Laravel 10. Hy vọng bài viết sẽ giúp ích được cho các bạn.

Tham khảo: https://laravel.com/docs/10.x/releases

Tôi thấy điều này hữu ích:

Mình là Nguyễn Hữu Ngọc. Là một Fullstack Developer.
Blog này là nơi mình chia sẻ những kiến thức, kinh nghiệm mà mình đạt được trong quá trình làm việc và trải nghiệm. Mong rằng nó sẽ giải đáp phần nào những khúc mắc, trăn trở cho những ai đã và đang theo ngành lập trình.