Hướng dẫn phpstan output to file - xuất phpstan ra tệp

Hỗ trợ ghi nhật ký XML của CheckStyle đã được thêm vào #274. Cảm ơn vì điều đó! Tuy nhiên, tôi nghĩ rằng điều này có thể được thực hiện thuận tiện hơn để sử dụng.

Dưới đây bạn có thể thấy nỗ lực đầu tiên của tôi để tạo logfile XML CheckStyle:

$ ./bin/phpstan analyse --errorFormat=checkstyle src
 144/144 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%




 


Tất nhiên, những điều trên là không thể sử dụng được vì XML được viết vào stdout cũng chứa thông tin của bản sao chép, v.v.

Bây giờ tôi vẫn ổn với cách giải quyết dưới đây:

$ ./bin/phpstan analyse --no-progress --no-ansi --errorFormat=checkstyle src > checkstyle.xml

Như được hiển thị ở trên, tôi có thể chuyển hướng đầu ra sang một tệp để tạo tài liệu XML hợp lệ ở định dạng CheckStyle.

Tôi nghĩ rằng nó sẽ thuận tiện hơn, mặc dù, nếu có một tùy chọn để viết một logfile theo định dạng được chỉ định vào một tệp được chỉ định.

Thực đơn

Phpstan hỗ trợ các định dạng đầu ra khác nhau thông qua các loại định dạng lỗi khác nhau.

Bạn có thể chuyển các từ khóa sau đến tùy chọn --error-format=X CLI của lệnh analyse để ảnh hưởng đến đầu ra:

  • table: Mặc định. Lỗi nhóm theo tập tin, được tô màu. Cho tiêu dùng của con người. Ngoài ra, định dạng table sẽ phát hiện nó chạy trong môi trường tích hợp liên tục như hành động của GitHub và Teamcity, và bên cạnh bảng, nó cũng sẽ đưa ra các lỗi trong định dạng cụ thể cho môi trường đó.
  • raw: Chứa một lỗi trên mỗi dòng, với đường dẫn đến tệp, số dòng và mô tả lỗi
  • $ ./bin/phpstan analyse --no-progress --no-ansi --errorFormat=checkstyle src > checkstyle.xml
    
    0: Tạo đầu ra tương thích CheckStyle.xml. Lưu ý rằng bạn phải chuyển hướng đầu ra vào một tệp để nắm bắt kết quả để xử lý sau này.
  • $ ./bin/phpstan analyse --no-progress --no-ansi --errorFormat=checkstyle src > checkstyle.xml
    
    1: Tạo đầu ra .json Minified mà không có khoảng trắng. Lưu ý rằng bạn phải chuyển hướng đầu ra vào một tệp để nắm bắt kết quả để xử lý sau này.
  • $ ./bin/phpstan analyse --no-progress --no-ansi --errorFormat=checkstyle src > checkstyle.xml
    
    2: Tạo đầu ra .Json có thể đọc được với khoảng trắng và vết lõm. Lưu ý rằng bạn phải chuyển hướng đầu ra vào một tệp để nắm bắt kết quả để xử lý sau này.
  • $ ./bin/phpstan analyse --no-progress --no-ansi --errorFormat=checkstyle src > checkstyle.xml
    
    3: Tạo đầu ra tương thích JUnit. Lưu ý rằng bạn phải chuyển hướng đầu ra vào một tệp để nắm bắt kết quả để xử lý sau này.
  • $ ./bin/phpstan analyse --no-progress --no-ansi --errorFormat=checkstyle src > checkstyle.xml
    
    4: Tạo đầu ra tương thích của GitHub Action.
  • $ ./bin/phpstan analyse --no-progress --no-ansi --errorFormat=checkstyle src > checkstyle.xml
    
    5: Tạo định dạng để sử dụng Widget chất lượng mã theo yêu cầu hợp nhất Gitlab.
  • $ ./bin/phpstan analyse --no-progress --no-ansi --errorFormat=checkstyle src > checkstyle.xml
    
    6: Tạo đầu ra tương thích đồng đội.

Bạn cũng có thể thực hiện định dạng lỗi tùy chỉnh của riêng bạn. Học cách »

Bạn có thể thay đổi định dạng lỗi mặc định trong cấu hình. Học cách »

Mở tệp trong trình chỉnh sửa #

Formatter table mặc định cung cấp tham số cấu hình

$ ./bin/phpstan analyse --no-progress --no-ansi --errorFormat=checkstyle src > checkstyle.xml
8 cho phép bạn chỉ định URL với trình giữ chỗ sẽ được in bên cạnh thông báo lỗi trong đầu ra:

 ------ -------------------------------------------------------------------
  Line   test.php
 ------ -------------------------------------------------------------------
  3      Parameter #1 [stdClass] of echo cannot be converted to string.
         ✏️  phpstorm://open?file=/home/dev/test.php&line=3
 ------ -------------------------------------------------------------------

Tại đây, cách thức tham số có thể được đặt trong tệp cấu hình:

parameters:
editorUrl: 'phpstorm://open?file=%%file%%&line=%%line%%'

Ví dụ về URL cho các biên tập viên phổ biến nhất là:

  • Phpstorm:
    $ ./bin/phpstan analyse --no-progress --no-ansi --errorFormat=checkstyle src > checkstyle.xml
    
    9
  • Mã Visual Studio:
     ------ -------------------------------------------------------------------
      Line   test.php
     ------ -------------------------------------------------------------------
      3      Parameter #1 [stdClass] of echo cannot be converted to string.
             ✏️  phpstorm://open?file=/home/dev/test.php&line=3
     ------ -------------------------------------------------------------------
    
    0
  • Nguyên tử:
     ------ -------------------------------------------------------------------
      Line   test.php
     ------ -------------------------------------------------------------------
      3      Parameter #1 [stdClass] of echo cannot be converted to string.
             ✏️  phpstorm://open?file=/home/dev/test.php&line=3
     ------ -------------------------------------------------------------------
    
    1

Đặt tham số này rất có thể sẽ được thực hiện trong tệp cấu hình cục bộ của bạn mà không được cam kết điều khiển phiên bản. Mẫu phổ biến là có

 ------ -------------------------------------------------------------------
  Line   test.php
 ------ -------------------------------------------------------------------
  3      Parameter #1 [stdClass] of echo cannot be converted to string.
         ✏️  phpstorm://open?file=/home/dev/test.php&line=3
 ------ -------------------------------------------------------------------
2 với các cài đặt dành riêng cho dự án được chia sẻ bởi mọi người trong nhóm và.

includes:
- phpstan.neon.dist

parameters:
editorUrl: 'phpstorm://open?file=%%file%%&line=%%line%%'

Để làm cho văn bản thực sự có thể nhấp trong thiết bị đầu cuối của bạn, bạn có thể cần phải đăng ký giao thức trong hệ thống của bạn; Xem ví dụ về Eclemens/Atom-URL-Handler.

Có sẵn trong Phpstan 1.7.15

Nếu bạn chạy phân tích PHPSTAN trong Container Docker [hoặc sử dụng các công cụ ảo hóa khác], bạn có thể cần sử dụng

 ------ -------------------------------------------------------------------
  Line   test.php
 ------ -------------------------------------------------------------------
  3      Parameter #1 [stdClass] of echo cannot be converted to string.
         ✏️  phpstorm://open?file=/home/dev/test.php&line=3
 ------ -------------------------------------------------------------------
5 thay vì
 ------ -------------------------------------------------------------------
  Line   test.php
 ------ -------------------------------------------------------------------
  3      Parameter #1 [stdClass] of echo cannot be converted to string.
         ✏️  phpstorm://open?file=/home/dev/test.php&line=3
 ------ -------------------------------------------------------------------
6. Điều này sẽ sử dụng đường dẫn tệp File so với thư mục làm việc hiện tại. Cuối cùng,
$ ./bin/phpstan analyse --no-progress --no-ansi --errorFormat=checkstyle src > checkstyle.xml
8 của bạn sẽ trông như thế này:
 ------ -------------------------------------------------------------------
  Line   test.php
 ------ -------------------------------------------------------------------
  3      Parameter #1 [stdClass] of echo cannot be converted to string.
         ✏️  phpstorm://open?file=/home/dev/test.php&line=3
 ------ -------------------------------------------------------------------
8.

Vì mọi thành viên trong nhóm làm việc trong cùng một dự án có thể sẽ có đường dẫn tuyệt đối khác nhau đến dự án, nên

$ ./bin/phpstan analyse --no-progress --no-ansi --errorFormat=checkstyle src > checkstyle.xml
8 dành riêng cho máy trong
 ------ -------------------------------------------------------------------
  Line   test.php
 ------ -------------------------------------------------------------------
  3      Parameter #1 [stdClass] of echo cannot be converted to string.
         ✏️  phpstorm://open?file=/home/dev/test.php&line=3
 ------ -------------------------------------------------------------------
3 được kết hợp với
 ------ -------------------------------------------------------------------
  Line   test.php
 ------ -------------------------------------------------------------------
  3      Parameter #1 [stdClass] of echo cannot be converted to string.
         ✏️  phpstorm://open?file=/home/dev/test.php&line=3
 ------ -------------------------------------------------------------------
2 nơi tất cả các cài đặt dự án chung sống.

Chỉnh sửa trang này trên github

Bài Viết Liên Quan

Chủ Đề