Phpcs:bỏ qua độ dài dòng

PHP_CodeSniffer là một công cụ hữu ích để kiểm tra mã của bạn dựa trên một bộ tiêu chuẩn và quy tắc. Nó có thể giúp đảm bảo một tiêu chuẩn và phong cách viết mã nhất định trong nhóm phát triển, bằng cách chạy PHPCS dưới dạng móc nối cam kết hoặc trong đường dẫn CI/CD. Tuy nhiên, trong một số trường hợp, bạn có thể cần tắt PHPCS đối với một số phần nhất định trong mã của mình. Ví dụ: khi dự án của bạn chứa mã kế thừa mà bạn chưa cấu trúc lại hoặc khi bạn đang mở rộng từ các đối tượng bên thứ ba

Với các nhận xét sau, bạn có thể bỏ qua bất kỳ phần nào của tệp bạn muốn

Bỏ qua tất cả các lần đánh hơi cho tập tin

Ví dụ:

Ignore only the current and next line:

________1

Ignore the current line:

________2

Ignore a certain amount of lines in a file:

________3

With // phpcs:ignore// phpcs:disable bạn cũng có thể chỉ định thông báo, đánh hơi, danh mục hoặc tiêu chuẩn nào bạn muốn tắt

// phpcs:ignore Squiz.Arrays.ArrayDeclaration.SingleLineNotAllowed
$foo = [1,2,3];

Nếu bạn muốn đọc thêm về chủ đề này, bạn có thể truy cập wiki. Một số ví dụ được lấy từ đó

Là nhà phát triển, cuối cùng chúng ta thường bỏ qua các phương pháp hay nhất và tiêu chuẩn mã hóa của ngôn ngữ lập trình. Điều này có thể do nhiều lý do như thiếu hiểu biết, kiến ​​thức hạn chế về tiêu chuẩn, khả năng đọc mã, khả năng bảo trì mã, v.v.

Việc viết mã bị vi phạm trở nên dễ dàng và tránh các phương pháp hay nhất về mã hóa khi mã của bạn không bị theo dõi. Tuy nhiên, điều tương tự trở nên khó khăn khi mã của bạn đang bị theo dõi bởi các công cụ thực thi tiêu chuẩn mã hóa. Và nó càng trở nên khó khăn hơn khi mã của bạn đang được theo dõi bởi các công cụ như vậy cộng với các hệ thống CI. Các hệ thống này đảm bảo rằng các yêu cầu hợp nhất với các tiêu chuẩn mã hóa kém sẽ không được hợp nhất và thay vào đó hiển thị cho bạn các lỗi về màu sắc mà bạn ghét

Trong bài đăng trên blog này, chúng ta sẽ nói về PHP CodeSniffer, một công cụ được các nhà phát triển PHP trên toàn cầu sử dụng để thực thi các phương pháp hay nhất về mã hóa. Nhưng ngoài việc chỉ thực thi các tiêu chuẩn mã, công cụ này hiểu rằng đôi khi vi phạm mã là nhu cầu chính đáng của các nhà phát triển để viết mã có thể bảo trì. Và do đó, công cụ này cung cấp một số điều khoản thông qua đó các nhà phát triển có thể vi phạm mã, đồng thời không đưa ra lỗi

Dưới đây là các điều khoản do PHP CodeSniffer cung cấp để bỏ qua các vi phạm mã trên các phần khác nhau của cơ sở mã

Bỏ qua các phần của tệp

Phương pháp 1. Bỏ qua một dòng mã

 

Khi Nào Sử Dụng. Phương pháp này được sử dụng để bỏ qua một số dòng mã bị vi phạm

Cách sử dụng. Bằng cách thêm // @codingStandardsIgnoreLine trước hoặc nội tuyến với dòng mã có liên quan

Thí dụ. Hãy xem mẫu mã dưới đây


Trong đoạn mã này, hàm dịch chuỗi của Drupal 7 có tên là t() được sử dụng, lý tưởng nhất là đưa ra cảnh báo khi một chuỗi bắt đầu bằng dấu cách được truyền dưới dạng đối số. Tuy nhiên, chúng tôi đã khắc phục điều đó bằng cách sử dụng // @codingStandardsIgnoreLine ngay trước dòng mã

Phương pháp 2. Bỏ qua một khối mã

Khi Nào Sử Dụng. Phương pháp này được sử dụng để bỏ qua một số dòng mã bị vi phạm

Cách sử dụng. Bằng cách gói mã trong // @codingStandardsIgnoreStart và // @codingStandardsIgnoreEnd

Thí dụ. Hãy xem mẫu mã này

 

Trong mã này, các nhận xét nội tuyến không theo tiêu chuẩn mã hóa Drupal. Nhưng với tư cách là một nhà phát triển, việc viết các nhận xét như vậy giúp mã dễ đọc hơn. Vì vậy, chúng tôi đã vi phạm bằng cách gói mã trong // @codingStandardsIgnoreStart và // @codingStandardsIgnoreEnd

Bỏ qua tệp và thư mục

Phương pháp 1. Bỏ qua một tập tin

Khi Nào Sử Dụng. Phương pháp này được sử dụng để bỏ qua một tập tin hoàn chỉnh

Cách sử dụng. Bằng cách thêm nhận xét // @codingStandardsIgnoreFile vào bất kỳ đâu trong tệp

Thí dụ

 

Mẫu mã này là một tệp trong đó tất cả mã có liên quan đến cấu hình mẫu hoặc API cho mục đích tài liệu và do đó, các tiêu chuẩn trong tệp này đã bị bỏ qua bằng cách thêm // @codingStandardsIgnoreFile

Phương pháp 2. Bỏ qua một thư mục

Khi Nào Sử Dụng. Phương pháp này được sử dụng để bỏ qua một thư mục hoặc thư mục hoàn chỉnh

Cách sử dụng. Bằng cách thêm đối số --ignore trong lệnh PHPCS

Thí dụ

 

Lệnh trên, khi được thực thi trong thiết bị đầu cuối, sẽ quét tất cả mã và thư mục bên trong /path/to/directory/container/files/directory ngoại trừ thư mục tệp của nó

Tất cả các phương pháp trên đều hoạt động nếu ứng dụng của bạn đang sử dụng phiên bản PHPCS thấp hơn 3. 2. 0. Để biết các thay đổi sau phiên bản này, hãy tham khảo bảng bên dưới

Phương pháp

PHPCS <3. 2. 0

PHPCS >= 3. 2. 0

Bỏ qua một tập tin

// @codingStandardsIgnoreFile

// phpc. bỏ qua tập tin

Bỏ qua một dòng

// @codingStandardsIgnoreLine

// phpc. Làm lơ

Bỏ qua một khối

 

// @codingStandardsIgnoreStart

// phpc. vô hiệu hóa

// @codingStandardsIgnoreEnd

// phpc. cho phép


Cú pháp @codingStandards không được dùng nữa và sẽ bị xóa trong PHPCS phiên bản 4. 0. Vì vậy, với tư cách là nhà phát triển, nếu bạn luôn cập nhật phiên bản PHPCS của mình, thì đây là một thay đổi quan trọng cần thực hiện trong quá trình cập nhật

Bằng cách làm theo các phương pháp trên, bạn có thể bỏ qua các quy tắc PHPCS và vi phạm bao nhiêu lần tùy ý. Nhưng hãy nhớ. "Với sức mạnh lớn đến trách nhiệm lớn". Vì vậy, bạn chỉ nên sử dụng kỹ thuật này vì những lý do chính đáng và không coi đây là cách sống của bạn với tư cách là một lập trình viên