Làm cách nào để cài đặt PHPStan trong PhpStorm?

Thực đơn

PHPStan yêu cầu PHP >= 7. 2. Bạn phải chạy nó trong môi trường với PHP 7. x nhưng mã thực tế không phải sử dụng PHP 7. tính năng x. [Code viết cho PHP 5. 6 trở về trước có thể chạy trên 7. x hầu như không được sửa đổi. ]

PHPStan hoạt động tốt nhất với mã hướng đối tượng hiện đại. Mã của bạn càng được gõ mạnh, thì càng có nhiều thông tin bạn cung cấp cho PHPStan để làm việc với

Mã được chú thích và đánh máy đúng cách [thuộc tính lớp, đối số hàm và phương thức, kiểu trả về] không chỉ giúp các công cụ phân tích tĩnh mà cả những người khác làm việc với mã hiểu mã đó

Cài đặt

Để bắt đầu thực hiện phân tích trên mã của bạn, hãy yêu cầu PHPStan trong Composer

composer require --dev phpstan/phpstan

Trình soạn thảo sẽ cài đặt tệp thực thi của PHPStan trong

vendor/bin/phpstan analyse src tests
4 của nó, mặc định là
vendor/bin/phpstan analyse src tests
5

Bạn cũng có thể tải xuống PHAR mới nhất và chỉ cần sử dụng. Nhưng nếu không có Composer, bạn sẽ không thể cài đặt và sử dụng các tiện ích mở rộng PHPStan

Đi đến đây nếu bạn muốn sử dụng PHPStan trong Docker

Lần chạy đầu tiên

Để PHPStan phân tích cơ sở mã của bạn, bạn phải sử dụng lệnh

vendor/bin/phpstan analyse src tests
6 và trỏ nó đến đúng thư mục

Vì vậy, ví dụ nếu bạn có các lớp của mình trong các thư mục

vendor/bin/phpstan analyse src tests
7 và
vendor/bin/phpstan analyse src tests
8, bạn có thể chạy PHPStan như thế này

vendor/bin/phpstan analyse src tests

Bạn chỉ nên phân tích các tệp có mã do chính bạn viết. Không cần phải phân tích thư mục

vendor/bin/phpstan analyse src tests
9 với sự phụ thuộc của bên thứ 3 vì bạn không có khả năng sửa chữa tất cả các lỗi do nhà phát triển mà bạn không làm việc trực tiếp gây ra

Có, PHPStan cần biết về tất cả các lớp, giao diện, đặc điểm và chức năng mà mã của bạn sử dụng, nhưng điều đó đạt được thông qua khám phá các ký hiệu, chứ không phải bằng cách đưa các tệp vào phân tích

Tìm hiểu thêm về các tùy chọn dòng lệnh »

PHPStan có thể sẽ tìm thấy một số lỗi, nhưng đừng lo, mã của bạn có thể vẫn ổn. Lỗi được tìm thấy trong lần chạy đầu tiên có xu hướng

  • Các đối số bổ sung được truyền cho các hàm [e. g. hàm yêu cầu hai đối số, mã vượt qua ba]
  • Các đối số bổ sung được truyền cho các hàm print/sprintf [e. g. chuỗi định dạng chứa một trình giữ chỗ, mã sẽ chuyển hai giá trị để thay thế]
  • Lỗi rõ ràng trong mã chết
  • Các ký hiệu không xác định - như “không tìm thấy lớp”. Xem Khám phá các biểu tượng để biết thêm chi tiết

Theo mặc định, PHPStan chỉ chạy các kiểm tra cơ bản nhất. Đi tới Cấp độ quy tắc để tìm hiểu cách bật kiểm tra chặt chẽ hơn

Mã của bạn thường sẽ chạy tốt cho đến ngày máy chủ sản xuất của bạn gặp sự cố do lỗi bạn đã mắc phải ba tháng trước khi tái cấu trúc mã kế thừa hiếm khi chạy

Đó là những gì PHPStan đã được tạo ra cho. nó tìm thấy lỗi trong mã của bạn mà không thực sự chạy mã đó và phát hiện toàn bộ lớp lỗi ngay cả trước khi bạn viết kiểm tra mã

Điều này được gọi là phân tích tĩnh

Nó đưa PHP đến gần hơn với các ngôn ngữ được biên dịch theo nghĩa là có thể kiểm tra tính chính xác của từng dòng mã trước khi bạn chạy dòng thực tế trên máy chủ của mình

Cài đặt

Nhập PHPStan vào dự án của bạn bằng cách sử dụng lệnh

composer require --dev phpstan/phpstan
0

composer require --dev phpstan/phpstan

Và sau đó chạy nó bằng cách sử dụng công cụ CLI của nó

vendor/bin/phpstan analyse src

Điều này sẽ chạy PHPStan trên thư mục

vendor/bin/phpstan analyse src tests
7 của bạn và phân tích mã của bạn

Đầu ra CLI của PHPStan

Sử dụng tệp cấu hình

PHPStan có nhiều tùy chọn có thể được chuyển vào CLI dưới dạng tham số [chẳng hạn như mức độ phân tích, đường dẫn được phân tích, v.v. ] nhưng cách dễ nhất để chạy PHPStan với các tùy chọn này là sử dụng tệp NEON

NEON tương tự như YAML. Đây là giao diện của tệp cấu hình PHPStan cơ bản

parameters:
level: 6
paths:
- src
- tests

Mức có thể được đặt thành bất kỳ số nguyên nào trong khoảng từ 0 đến 9. Dưới đây là tổng quan ngắn gọn về những gì được kiểm tra ở mỗi cấp độ. Các cấp độ được tích lũy — ví dụ: chạy cấp độ 5 cũng cung cấp cho bạn tất cả các lần kiểm tra từ cấp độ 0–4

  1. Kiểm tra cơ bản, lớp không xác định, hàm không xác định, phương thức không xác định được gọi trên
    composer require --dev phpstan/phpstan
    2, sai số lượng đối số được truyền cho các phương thức và hàm đó, biến luôn không xác định
  2. Có thể là các biến không xác định, các phương thức và thuộc tính ma thuật không xác định trên các lớp có
    composer require --dev phpstan/phpstan
    3 và
    vendor/bin/phpstan analyse src
    0
  3. Đã kiểm tra các phương thức không xác định trên tất cả các biểu thức [không chỉ
    composer require --dev phpstan/phpstan
    2], xác thực PHPDocs
  4. Kiểu trả về, kiểu được gán cho thuộc tính
  5. Kiểm tra mã chết cơ bản — luôn sai
    vendor/bin/phpstan analyse src
    2 và các loại kiểm tra khác, nhánh
    vendor/bin/phpstan analyse src
    3 chết, mã không truy cập được sau khi trả lại;
  6. Kiểm tra các loại đối số được truyền cho các phương thức và hàm
  7. Báo cáo lỗi đánh máy
  8. Báo cáo các loại kết hợp sai một phần - nếu bạn gọi một phương thức chỉ tồn tại trên một số loại trong loại kết hợp, cấp 7 bắt đầu báo cáo điều đó;
  9. Báo cáo các phương thức gọi và truy cập các thuộc tính trên các loại nullable
  10. Hãy nghiêm ngặt về loại
    vendor/bin/phpstan analyse src
    4 - thao tác được phép duy nhất mà bạn có thể thực hiện với nó là chuyển nó cho một
    vendor/bin/phpstan analyse src
    4 khác

Chạy PHPStan với tệp cấu hình này được thực hiện bằng cách thêm cờ

vendor/bin/phpstan analyse src
6 vào lệnh

vendor/bin/phpstan analyse src tests
1

Đây là trang tham khảo cấu hình đầy đủ trên trang web chính thức của PHPStan

Tiện ích mở rộng

PHPStan có thể tận dụng các tiện ích mở rộng để hiểu rõ hơn một số đoạn mã của bạn, trong khi sử dụng Doctrine/PHPUnit/Prophecy hoặc các thư viện khác…

Trong ví dụ về Doctrine, một số hàm như findBy / findOneBy / getRepository không được PHPStan hiểu và sẽ tạo ra lỗi ngay cả khi mã đúng

Để bắt đầu, hãy cài đặt thư viện trình cài đặt tiện ích mở rộng của PHPStan. Nó sẽ làm cho quá trình thêm tiện ích mở rộng nhanh hơn nhiều

vendor/bin/phpstan analyse src tests
2

Đây là danh sách các tiện ích mở rộng chính thức [và một số không chính thức] được hỗ trợ bởi PHPStan

Việc cài đặt tiện ích mở rộng được thực hiện đơn giản bằng cách yêu cầu gói trình soạn thảo, trình cài đặt tiện ích mở rộng của PHPStan sẽ lo mọi thứ khác

vendor/bin/phpstan analyse src tests
3

tự động hóa

Bạn có thể đưa PHPStan vào bộ GitHub Action của mình để mã của bạn được kiểm tra mỗi khi bạn thực hiện một cam kết trên các PR của mình

Đó là nó

Nếu bạn thích bài viết này, hãy đảm bảo kiểm tra các bài viết khác của tôi, tôi xuất bản về hệ sinh thái và phát triển PHP nói chung. Theo dõi tài khoản của tôi để được cập nhật nội dung trong tương lai của tôi

Chủ Đề