PHPStan AST

PHPStan tập trung vào việc tìm lỗi trong mã của bạn. Nhưng trong PHP có rất nhiều khoảng trống trong cách viết nội dung. Kho lưu trữ này chứa các quy tắc bổ sung xoay quanh mã được gõ mạnh và nghiêm ngặt mà không cần truyền lỏng lẻo cho những ai muốn có thêm sự an toàn trong lập trình cực kỳ phòng thủ

  • Yêu cầu booleans trong
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    0,
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    1, toán tử bậc ba, sau
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    2 và trên cả hai vế của
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    3 và
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    4
  • Yêu cầu toán hạng số hoặc mảng trong
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    0 và toán hạng số trong
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    1/
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    2/
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    3/
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    4/
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    5
  • Yêu cầu toán hạng số trong
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    6,
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    7,
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    8and
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    9
  • Các chức năng này chứa tham số
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    00 để đảm bảo an toàn cho loại tốt hơn, nó phải được đặt thành
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    01
    • includes:
          - vendor/phpstan/phpstan-strict-rules/rules.neon
      
      02 [tham số thứ 3]
    • includes:
          - vendor/phpstan/phpstan-strict-rules/rules.neon
      
      03 [tham số thứ 3]
    • includes:
          - vendor/phpstan/phpstan-strict-rules/rules.neon
      
      04 [tham số thứ 3; chỉ khi tham số thứ 2
      includes:
          - vendor/phpstan/phpstan-strict-rules/rules.neon
      
      05 được cung cấp]
    • includes:
          - vendor/phpstan/phpstan-strict-rules/rules.neon
      
      06 [tham số thứ 2]
  • Các biến được gán trong điều kiện vòng lặp
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    07 và phép gán ban đầu của vòng lặp
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    08 không thể được sử dụng sau vòng lặp
  • Các biến được đặt trong foreach luôn được lặp nhờ các mảng không trống không thể được sử dụng sau vòng lặp
  • Các loại trong điều kiện
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    09 và giá trị
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    00 phải khớp. PHP so sánh chúng một cách lỏng lẻo theo mặc định và điều đó có thể dẫn đến kết quả không mong muốn
  • Kiểm tra xem các phương thức được khai báo tĩnh có được gọi là tĩnh không
  • Không cho phép
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    01 - đó là một phép so sánh rất lỏng lẻo [xem hướng dẫn], nên sử dụng một phép so sánh nghiêm ngặt hơn
  • Không cho phép toán tử bậc ba ngắn [
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    02] - ngụ ý so sánh yếu, nên sử dụng toán tử hợp nhất null [
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    03] hoặc toán tử bậc ba với điều kiện nghiêm ngặt
  • Không cho phép biến biến [
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    04,
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    05, v.v. ]
  • Không cho phép ghi đè biến bằng biến khóa và giá trị foreach
  • Luôn đúng
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    06, các hàm
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    07 kiểm tra kiểu và so sánh chặt chẽ
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    08/
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    09. Có thể tắt các kiểm tra này bằng cách đặt
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    00/
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    01/
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    02 thành false
  • Trường hợp đúng cho tên hàm được tham chiếu và được gọi
  • Trường hợp chính xác cho các tên phương thức được kế thừa và triển khai
  • Chống chỉ định đối với các loại tham số và hiệp phương sai đối với các loại trả về trong các phương thức được kế thừa [còn được gọi là nguyên tắc thay thế Liskov - LSP]
  • Kiểm tra LSP ngay cả đối với các phương thức tĩnh
  • Yêu cầu gọi hàm tạo cha mẹ
  • Không cho phép sử dụng toán tử backtick [
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    03]
  • Việc đóng nên sử dụng trực tiếp
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    04 thay vì sử dụng biến
    includes:
        - vendor/phpstan/phpstan-strict-rules/rules.neon
    
    04 một cách gián tiếp

Các quy tắc bổ sung sẽ đến trong các bản phát hành tiếp theo

Cài đặt

Để sử dụng tiện ích mở rộng này, hãy yêu cầu nó trong Composer

includes:
    - vendor/phpstan/phpstan-strict-rules/rules.neon
6

Nếu bạn cũng cài đặt phpstan/trình cài đặt tiện ích mở rộng thì bạn đã hoàn tất

Hướng dẫn cài đặt

Nếu bạn không muốn sử dụng

includes:
    - vendor/phpstan/phpstan-strict-rules/rules.neon
06, hãy bao gồm các quy tắc. neon trong cấu hình PHPStan của dự án của bạn

includes:
    - vendor/phpstan/phpstan-strict-rules/rules.neon

vô hiệu hóa quy tắc

Bạn có thể tắt các quy tắc bằng các tham số cấu hình

includes:
    - vendor/phpstan/phpstan-strict-rules/rules.neon
0

Kích hoạt từng quy tắc một

Nếu bạn không muốn bắt đầu sử dụng tất cả các quy tắc nghiêm ngặt có sẵn cùng một lúc mà chỉ một hoặc hai, bạn có thể

AST trong PHP là gì?

The Cây cú pháp trừu tượng [AST] là khung cơ sở cho nhiều công cụ mạnh mẽ của IDE Eclipse, bao gồm Đánh dấu ngữ nghĩa, Tái cấu trúc, Nhanh . Cây cú pháp trừu tượng ánh xạ mã nguồn PHP đơn giản ở dạng cây.

Cây cú pháp trong xây dựng trình biên dịch là gì?

Cú pháp cây là cây trong đó mỗi nút lá đại diện cho một toán hạng, trong khi mỗi nút bên trong đại diện cho một toán tử . Parse Tree được viết tắt là cây cú pháp. Cây cú pháp thường được sử dụng khi biểu diễn chương trình theo cấu trúc cây.

Chủ Đề