Sau một giờ xem qua báo cáo tôi đã đưa ra danh sách sau đây, nó có thể hữu ích cho mọi người mà tôi nghĩ.
Tôi sẽ cố gắng cập nhật ngay khi tôi tìm thấy nhiều cảnh báo / lỗi hơn:
Cảnh báo
Dòng vượt quá 80 ký tự; chứa các ký tự X
Hoặc là
Dòng vượt quá giới hạn tối đa 100 ký tự; chứa các ký tự X
Những cái đó là cái tôi đã thấy nhiều nhất, chúng là tự giải thích, đó là một cách thực hành tốt để giữ các dòng mã nhỏ để giữ cho mã sạch và dễ đọc.
Không tìm thấy khoảng trắng sau dấu phẩy trong chức năng gọi
Bạn đã gọi một hàm nhận tham số và không thêm dấu cách sau dấu phẩy. Ví dụ: strrchr($bla,".")
nênstrrchr($bla, ".")
Dự kiến \ "while (...) {\ n \"; đã tìm thấy \ "while (...) \ n {\ n \"
Dự kiến \ "foreach (...) {\ n \"; đã tìm thấy \ "foreach (...) \ n {\ n \"
Dự kiến \ "if (...) {\ n \"; đã tìm thấy \ "if (...) \ n {\ n \"
Dự kiến \ "} khác {\ n \"; đã tìm thấy \ "} \ n khác {\ n \"
Điều đó có nghĩa là bạn đã trả về một dòng trước dấu ngoặc mở của các câu lệnh PHP đó.
Ví dụ về một cú pháp xấu với câu lệnh if / other:
if (true)
{
}
else
{
}
Nên là
if (true) {
} else {
}
Dấu ngoặc đơn đóng và dấu ngoặc mở của khai báo hàm nhiều dòng phải nằm trên cùng một dòng
Hầu hết thời gian, nó xảy ra trong hàm tạo nơi bạn khai báo một cái gì đó như thế này:
public function __construct(
ProductFactory $productFactory,
Test $test
)
{
}
Trong khi đó nó phải là:
public function __construct(
ProductFactory $productFactory,
Test $test
) {
}
Kết thúc dòng ký tự không hợp lệ; mong đợi \ "\ n \" nhưng đã tìm thấy \ "\ r \ n \"
Xảy ra hầu hết thời gian ở phần đầu của tệp, nguyên nhân là do cách IDE của bạn mã hóa ký tự trả về.
Biến \ "your_variable \" không ở định dạng mũ lạc đà hợp lệ
Mỗi biến phải sử dụng định dạng mũ lạc đà, vì vậy $your_variable
nên$yourVariable
Biến \ "one2Three \" chứa số nhưng điều này không được khuyến khích
Tránh sử dụng số trong các biến của bạn
Cấu trúc điều khiển nội tuyến không được phép
Bạn không nên sử dụng các cấu trúc điều khiển nội tuyến như:
else $test = true;
Bạn nên sử dụng:
else {
$test = true;
}
Cú đúp mở của một lớp phải nằm trên dòng sau định nghĩa
Bạn đã trả về một dòng khi khai báo một lớp:
class Test
{
Bạn nên giữ nẹp mở trên cùng một dòng:
class Test {
Biến thành viên riêng \ "yourVariable \" phải chứa dấu gạch dưới hàng đầu
Biến thành viên được bảo vệ \ "yourVariable \" phải chứa dấu gạch dưới hàng đầu
Bạn nên thêm một dấu gạch dưới hàng đầu vào các biến thành viên được bảo vệ và riêng tư của bạn: $_yourVariable
Ngược lại với hai yếu tố đó, nếu bạn thêm dấu gạch dưới vào biến công khai, bạn có thể nhận được:
Biến thành viên công cộng \ "_ yourVariable \" không được chứa dấu gạch dưới hàng đầu.
Tham số phương thức $ bla không bao giờ được sử dụng
Bạn đã truyền một tham số cho một phương thức nhưng bạn không bao giờ sử dụng nó.
Khai báo hàm đa dòng không được thụt lề chính xác; 8 không gian dự kiến nhưng tìm thấy X
Bạn đã thêm quá nhiều thụt vào các tham số khai báo hàm:
public function __construct(ProductRepository $productRepository,
ListsInterface $listsInterface,
Data $helper
) {
Nên là:
public function __construct(ProductRepository $productRepository,
ListsInterface $listsInterface,
Data $helper
) {
Phương pháp vô dụng có thể ghi đè được phát hiện
Bạn đang ghi đè một phương thức mà không cần thêm sửa đổi, ví dụ:
public function __construct(Context $context) {
parent::__construct($context);
}
Mô hình tải phương thức LSD () được phát hiện trong vòng lặp
Bạn đang sử dụng load()
phương thức bên trong một vòng lặp không được khuyến nghị và phải tránh.
Rất có thể mã của bạn trông như thế này:
foreach(...) {
$model->load();
}
Nếu bạn đang tải một mô hình trong một vòng lặp thì thực sự khá tệ về mặt hiệu suất. Nếu bạn chỉ cần lấy một vài thuộc tính, bạn nên sử dụng các bộ sưu tập thay thế.
Độ phức tạp chu kỳ của hàm (X) vượt quá 10; xem xét tái cấu trúc hàm
Nếu bạn không quen thuộc với độ phức tạp theo chu kỳ, tôi khuyên bạn nên đọc bài viết này: https://pdepend.org/documentation/software-metrics/cyclomatic-complexity.html . Cảnh báo này về cơ bản có nghĩa là có quá nhiều vòng lặp và điều kiện trong chức năng của bạn.
Khởi tạo đối tượng trực tiếp không được khuyến khích trong Magento 2
Điều này được gây ra bởi thực tế là bạn đang khởi tạo một đối tượng trực tiếp bằng cách gọi lớp, ví dụ:
new \Zend_Filter_LocalizedToNormalized
Bạn nên sử dụng tiêm phụ thuộc hoặc phương sách cuối cùng, người quản lý đối tượng.
Nhận xét đề cập đến một nhiệm vụ TODO
Một trong những bình luận của bạn có chứa @TODO
cờ sau .
Tránh các câu lệnh IF luôn đúng hoặc sai
Bạn đã tạo một điều kiện dường như luôn luôn đúng hoặc sai.
Ví dụ:
$variable = "6";
...
// More code that doesn't change $variable
...
if ($variable)
Lỗi
Không gian tên cho lớp \ "Class \" không được chỉ định.
Bạn đang thiếu use Path\To\Class;
tuyên bố khi bắt đầu lớp học của bạn.