Quay lại

Một Số Tools Giúp Tăng Trải Nghiệm Tốt Hơn Trong PHP Chuyên mục PHP và Laravel    2024-05-25    21 Lượt xem    17 Lượt thích    comment-3 Created with Sketch Beta. 0 Bình luận

Một Số Tools Giúp Tăng Trải Nghiệm Tốt Hơn Trong PHP

Với sự ra đời của các framework như Laravel, Symfony, CakePHP, v.v., PHP đã trở thành một ngôn ngữ rất mạnh mẽ để xây dựng các ứng dụng web. Những framework này đã cải thiện đáng kể developer experience trong hệ sinh thái PHP.

Tuy nhiên, vẫn còn một số công cụ có thể làm cho trải nghiệm của bạn trở nên tốt hơn. Những thứ như code formatters, code analyzers, code sniffers, v.v. có thể cải thiện quy trình làm việc của bạn và giúp bạn viết mã code tốt hơn.

Trong bài viết này, mình sẽ liệt kê một số công cụ mà mình nghĩ có thể cải thiện trải nghiệm của bạn khi phát triển với PHP.

PHPStan

PHPStan là một công cụ phân tích tĩnh (static analysis tool) tập trung vào việc tìm ra lỗi trong mã code của bạn mà không cần thực sự chạy nó. Nó có thể phát hiện các loại lỗi khác nhau ngay cả trước khi bạn viết Unit Test cho mã code.

PHPStan có thể phát hiện một loạt các lỗi, từ việc xác định mã code không được sử dụng đến việc phát hiện xem bạn có đang sử dụng một biến không tồn tại hay không. Hoặc nếu bạn đang sử dụng một biến không thuộc loại bạn mong đợi hoặc kiểm tra phương thức không xác định...

Nó cũng có thể tìm ra các lỗi không dễ phát hiện chỉ bằng cách nhìn vào mã code hoặc bạn có thể bỏ qua một cách vô tình như một điều kiện if luôn đánh giá là đúng hoặc một biến không bao giờ được sử dụng.

Điều đó có nghĩa là bạn sẽ có thể triển khai mã code của mình với sự tự tin mà bạn chưa từng có trước đây.

Nếu bạn code dựa trên framework Laravel bạn có thể sử dụng larastan.

PHPUnit

Nếu PHPStan là một công cụ giúp bạn viết mã tốt hơn, thì PHPUnit là một công cụ giúp bạn kiểm thử mã của mình.

Ngày nay, hầu hết các framework đều đi kèm với PHPUnit. Vì vậy, bạn không cần phải cài đặt nó riêng. Nhưng nếu bạn không sử dụng bất kỳ framework nào, bạn có thể cài đặt nó bằng Composer.

Với PHPUnit, bạn có thể viết các Unit test rất chi tiết cho mã code của mình. Bạn có thể viết unit tests, integration tests, functional tests, v.v. bằng PHPUnit.

Việc viết unit tests là một cách tuyệt vời để đảm bảo rằng mã code của bạn hoạt động như mong đợi theo thời gian. Nó cũng giúp bạn tái cấu trúc mã code với sự tự tin.

Vì vậy, nếu bạn chưa viết kiểm thử cho mã của mình, bạn nên bắt đầu ngay lập tức.

Nếu như bạn muốn áp dụng nó vào trong laravel thì mình cũng đã có một bài hướng dẫn: Laravel Testing Và Cách Hoạt Động Của Từng Loại

Pest

Pest là một framework kiểm thử cho PHP được xây dựng trên nền tảng PHPUnit. Đây là một framework tương đối mới nhưng đang thu hút nhiều sự chú ý trong cộng đồng PHP.

Về cơ bản, Pest cung cấp cú pháp dễ đọc hơn và linh hoạt hơn để viết các Unit test, giúp cải thiện trải nghiệm tổng thể khi viết Unit test và giảm thiểu mã code mẫu (boilerplate code).

Chẳng hạn, nếu bạn muốn viết kiểm thử cho một hàm cộng hai số, bạn có thể làm điều đó trong PHPUnit như sau:

public function test_adds_two_numbers()
{
    $this->assertEquals(2, add(1, 1));
}​

Nhưng trong Pest, bạn có thể viết cùng một bài kiểm thử như sau:

it('adds two numbers', function () {
    expect(add(1, 1))->toBe(2);
});​

Như bạn có thể thấy, cú pháp của Pest dễ đọc và linh hoạt hơn so với PHPUnit.

Cú pháp này được lấy cảm hứng từ Jest, một framework kiểm thử của JavaScript. Vì vậy, nếu bạn đến từ thế giới JavaScript, bạn sẽ cảm thấy rất quen thuộc với Pest.

Nếu như bạn muốn áp dụng nó vào trong laravel thì mình cũng đã có một bài hướng dẫn: Cách sử dụng Pest để viết unit test trong Laravel

PHP-CS-Fixer

PHP-CS-Fixer là một công cụ có thể tự động sửa mã của bạn để tuân theo các standards như PSR-1, PSR-2, PSR-12, v.v. Nó cũng có thể sửa mã code của bạn để tuân theo các quy tắc tùy chỉnh của riêng bạn.

Khác với một số trình kiểm tra mã, PHP-CS-Fixer không chỉ phân tích cú pháp mã của bạn mà còn định dạng lại mã để tuân theo phong cách bạn đã cấu hình.

Nó có thể sửa rất nhiều thứ như thụt lề, kết thúc dòng, dòng trống, khoảng trắng xung quanh từ khóa, khoảng trắng xung quanh toán tử, khoảng trắng sau khi ép kiểu, v.v.

Composer Normalize

Đôi khi, khi làm việc trong một nhóm, bạn có thể gặp vấn đề với Composer do sự khác biệt trong tệp composer.json. Chẳng hạn, một de có thể đã sử dụng tab để thụt lề trong khi người khác sử dụng khoảng trắng. Hoặc một người có thể đã sử dụng dấu nháy đơn cho chuỗi trong khi người khác sử dụng dấu nháy kép.

Điều này có thể gây phiền phức. Vì vậy, để tránh điều này, bạn có thể sử dụng Composer Normalize, một plugin của Composer giúp chuẩn hóa tệp composer.json của bạn để nó nhất quán với phần còn lại của nhóm.

Bạn có thể cài đặt plugin này bằng Composer. Sau khi cài đặt, bạn có thể chạy lệnh sau để chuẩn hóa tệp composer.json của mình:

composer normalize​

Hoặc, bạn có thể sử dụng tùy chọn --dry-run để xem những thay đổi sẽ được thực hiện mà không thực sự áp dụng chúng:

composer normalize --dry-run

Rector

Rector là một công cụ có thể tự động upgrade (or downgrade) mã code của bạn lên các tiêu chuẩn mới nhất(latest standards). Nó cũng có thể giúp bạn tái cấu trúc mã để làm cho mã dễ đọc và bảo trì hơn.

Chẳng hạn, nếu bạn muốn nâng cấp mã của mình lên PHP 8, bạn có thể thực hiện bằng cách chạy lệnh sau:

vendor/bin/rector process src --set php80​

Điều này sẽ nâng cấp mã của bạn lên PHP 8. Bạn cũng có thể sử dụng Rector để nâng cấp mã của mình lên phiên bản mới nhất của framework bạn đang sử dụng.

Chẳng hạn, nếu bạn muốn nâng cấp mã của mình lên Laravel 8, bạn có thể thực hiện bằng cách chạy lệnh sau:

vendor/bin/rector process src --set laravel80​

Đây được gọi là các preset trong Rector. Bạn có thể tìm hiểu thêm về chúng tại đây.

 

Bình luận (0)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough

Bài viết liên quan

Learning English Everyday