Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8

Php 8.0 mang đến các tính năng mới, bổ sung cú pháp và lỗi. Để biết chi tiết về những gì mới trong phiên bản này, hãy xem thông báo phát hành. Để biết chi tiết về việc di chuyển mã của bạn, hãy tham khảo Hướng dẫn di chuyển từ hướng dẫn Php 7.4.x sang Php 8.0.x.

Có tên là đối số

Các đối số được đặt tên cho phép chuyển các đối số đến một hàm dựa trên tên tham số chứ không phải vị trí. Bằng cách này, các cuộc gọi chức năng trở thành tự ghi chép và trật tự lập luận trở nên tùy ý.

Trong một cuộc gọi chức năng, bạn có thể sử dụng Alt+Enter được cung cấp nhanh để thêm tên tham số một hoặc cho tất cả các đối số cùng một lúc. Nếu có các đối số trong danh sách có giá trị truyền phù hợp với giá trị mặc định, phpstorm nêu bật chúng là không sử dụng và cung cấp bản sửa lỗi nhanh để xóa chúng.

Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8

Thuộc tính

Với các thuộc tính, bạn có thể cung cấp siêu dữ liệu có cấu trúc, cú pháp cho các khai báo của các lớp, thuộc tính, chức năng, v.v. Không giống như nhận xét của PHPDOC, các thuộc tính được hỗ trợ và xác nhận ở cấp độ ngôn ngữ.

Để tạo một thuộc tính, hãy thêm điểm đánh dấu #[Attribute] trên đầu khai báo lớp. Bên trong thuộc tính, tùy chọn cung cấp các cờ mục tiêu và độ lặp lại. Để sử dụng hoàn thành mã, nhấn Ctrl+Space.target and repeatability flags. To use code completion, press Ctrl+Space.

Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8

Một số kiểm tra mã giúp đảm bảo rằng các thuộc tính được sử dụng chính xác:

  • Lớp không thể được sử dụng làm kiểm tra thuộc tính xác minh rằng một lớp được chú thích bằng #[Attribute] trong khai báo đối số của nó.

    Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8
  • Kiểm tra khai báo mục tiêu thuộc tính không thể áp dụng xác minh rằng thuộc tính được chú thích bằng #[Attribute::Target] trong khai báo đối số của nó và do đó được áp dụng cho mục tiêu chính xác như một lớp hoặc phương thức,

    Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8
  • Kiểm tra thuộc tính không thể lặp lại các thuộc tính được lặp lại mà không có cờ Attribute::IS_REPEATABLE được đặt trong khai báo đối số của nó.

    Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8

Các loại công đoàn

Một loại Liên minh chấp nhận các giá trị của nhiều loại khác nhau thay vì một loại duy nhất. Các loại liên minh được chỉ định là Type1|Type2|... và có thể được sử dụng ở tất cả các nơi mà các loại thông thường được chấp nhận. Tất cả các hỗ trợ mã hóa PhpStorm hiện có đều có các loại hỗ trợ đầy đủ.

Nếu một loại công đoàn được cung cấp qua PHPDOC, PHPStorm cung cấp ALT+ENT+nhanh chóng để chuyển đổi nó thành loại liên minh bản địa.

Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8

Với các loại liên minh được tuyên bố tự nhiên, Phpstorm có thể phân tích các cuộc gọi và phát hiện các khu vực có vấn đề. Kiểm tra hoạt động ở tất cả các cấp: thuộc tính, đối số và giá trị trả về.

Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8

Với chương trình khuyến mãi thuộc tính Constructor, bạn có thể khai báo và khởi tạo các thuộc tính lớp trực tiếp trong hàm tạo. Nếu bạn cung cấp một công cụ sửa đổi khả năng hiển thị như public, protected hoặc private cho đối số hàm tạo, đối số sẽ được hiểu là thuộc tính đối tượng và giá trị của nó sẽ được gán cho thuộc tính này. Điều này làm cho các đối tượng nhỏ hơn và dễ đọc hơn và giúp giảm lượng mã nồi hơi trong trường hợp bạn khởi tạo các biến thông qua một hàm tạo.

Bạn có thể chuyển đổi các đối số Constructor thành các thuộc tính được quảng bá với ALT+ENTER nhanh nhanh.

Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8

Phpstorm xác minh rằng các thuộc tính được thúc đẩy được sử dụng theo các ràng buộc PHP 8. Ví dụ, một thuộc tính được quảng bá không thể được khai báo bên ngoài một hàm tạo hoặc bên trong một hàm tạo trừu tượng và các tham số variadic không thể được quảng bá.

Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8

Phù hợp biểu thức

Một biểu thức kết hợp tương tự như switch nhưng cung cấp ngữ nghĩa an toàn hơn và có thể trả về một giá trị. PhpStorm phát hiện các câu lệnh switch có thể được chuyển đổi thành các biểu thức #[Attribute]0 và cung cấp một ALT+ENTER nhanh chóng dành riêng để thực hiện việc này.

Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8

Một số kiểm tra mã giúp đảm bảo rằng các biểu thức #[Attribute]0 được sử dụng chính xác:

  • Nếu loại của đối số biểu thức không khớp với bất kỳ điều kiện được chỉ định nào, biểu thức sẽ gây ra #[Attribute]2. Trong những trường hợp như vậy, bạn có thể thêm một cánh tay #[Attribute]3 bằng cách sử dụng lỗi nhanh được cung cấp.

    Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8
  • Việc kiểm tra điều kiện 'khớp' không sử dụng làm nổi bật các điều kiện không bao giờ khớp và đề nghị xóa chúng.

    Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8
  • Kiểm tra điều kiện không sử dụng phát hiện các điều kiện trùng lặp sẽ không bao giờ chạy. Bạn có thể điều hướng giữa chúng và loại bỏ toàn bộ cánh tay hoặc chỉ giá trị trùng lặp khỏi danh sách các giá trị.

    Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8
  • Cánh tay trùng lặp trong kiểm tra biểu thức 'khớp' phát hiện các cơ thể giống hệt nhau ở các cánh tay khác nhau, có thể được hợp nhất thành một để giảm kích thước của khối.

    Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8
  • Biểu thức 'khớp' có thể được thay thế bằng kiểm tra biểu thức ternary sẽ phát hiện các biểu thức bằng một cánh tay duy nhất và cánh tay #[Attribute]3 và cho phép bạn thay thế chúng bằng các biểu thức ternary.

    Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8
  • Nếu một biểu thức trận đấu chỉ có một cánh tay mặc định, thì nó có thể là dự phòng. Kiểm tra biểu thức 'khớp' dự phòng sẽ làm nổi bật các biểu thức như vậy và cho phép bạn xóa chúng.

    Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8

Nhà điều hành Nullsafe

Với toán tử nullsafe #[Attribute]5, bạn có thể thay thế các điều kiện kiểm tra null lồng nhau bằng các cuộc gọi xích.

Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8

Phpstorm xác minh rằng toán tử nullsafe không được sử dụng sai trong bối cảnh ghi hoặc làm tài liệu tham khảo.

Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8

Bắt không bắt giữ

Bắt đầu với Php 8, bạn có thể bắt các ngoại lệ mà không cần bắt chúng thành các biến. Kiểm tra biến cục bộ không sử dụng phát hiện các biến không được sử dụng bên trong câu lệnh #[Attribute]6 và cung cấp ALT FIX ALT+ENTER để xóa chúng:

Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8

Ném biểu thức

Trong Php 8, các trường hợp ngoại lệ được cho phép ở tất cả các nơi mà các biểu thức được chấp nhận, ví dụ, trong các chức năng mũi tên, nhà điều hành hợp tác #[Attribute]7 và nhà điều hành ternary #[Attribute]8. Phpstorm cung cấp một mẫu trực tiếp cho phép bạn nhanh chóng thêm biểu thức #[Attribute]9. Để áp dụng nó, nhập #[Attribute::Target]0 và nhấn Tab.

Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8

Sử dụng :: lớp trên các đối tượng

Trong các phiên bản PHP trước, để có được một lớp FQN, bạn có thể sử dụng #[Attribute::Target]1. Tuy nhiên, trên các đối tượng, bạn phải gọi #[Attribute::Target]2. Trong Php 8, các cuộc gọi #[Attribute::Target]2 có thể được thay thế một cách an toàn bằng #[Attribute::Target]4. PhpStorm cung cấp ALT tập hợp nhanh+Enter cho điều này và cũng sẽ cảnh báo nếu #[Attribute::Target]5 được sử dụng không phù hợp.

Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8

Các chức năng mới cho chuỗi

Php 8 giới thiệu một số chức năng mới để làm việc với các chuỗi. Hàm str_contains kiểm tra xem một chuỗi có chứa trong một chuỗi khác hay không. Các hàm str_starts_with và str_ends_with được sử dụng để xác định xem một chuỗi bắt đầu hay kết thúc bằng một chuỗi con cụ thể. Các cuộc gọi 'str*' có thể được thay thế bằng các cuộc gọi Php 8 'str_*' làm nổi bật các cuộc gọi #[Attribute::Target]6 và #[Attribute::Target]7 có thể được thay thế bằng các lựa chọn thay thế hiện đại và tự giải thích hơn và cung cấp các lỗi nhanh tương ứng của ALT+Enter.

Hướng dẫn phpstorm php 8 support - hỗ trợ phpstorm php 8

Sửa đổi lần cuối: 26 tháng 8 năm 2021