DevToolPal
VI

Định dạng PHP

Làm đẹp mã PHP theo PER Coding Style (PSR-12) bằng plugin PHP chính thức của Prettier.

Chạy cục bộ, không bao giờ tải lên

Tùy chọn

Thụt lề
Dấu ngoặc nhọn

Đầu vào

0 ký tự · 0 B

Đầu ra

0 ký tự · 0 B

Công cụ này làm gì

Công cụ định dạng PHP biến mã PHP lộn xộn, đã rút gọn hoặc thụt lề không nhất quán thành mã gọn gàng tuân theo chuẩn viết mã của cộng đồng. Nó xử lý được cú pháp hiện đại, bao gồm thuộc tính có kiểu và readonly, constructor promotion, arrow function, enum, biểu thức match và attribute.

Công cụ chạy Prettier với plugin PHP chính thức, đúng bộ đôi mà nhiều đội Laravel và Symfony dùng trong trình soạn thảo và pre-commit hook, nên kết quả khớp với những gì công cụ của bạn sẽ tạo ra.

Cách sử dụng

  1. Dán mã PHP, hoặc mở một tệp .php. Thẻ mở <?php là tùy chọn với các đoạn mã ngắn.
  2. Mã đã định dạng xuất hiện ở bên phải ngay khi bạn gõ.
  3. Điều chỉnh các tùy chọn:
    • Thụt lề: 4 dấu cách là chuẩn PSR; cũng có 2 dấu cách và tab.
    • Độ rộng dòng: dòng dài hơn giá trị này sẽ được ngắt ở những chỗ cú pháp cho phép.
    • Dấu ngoặc nhọn: đặt dấu ngoặc của class và function ở dòng tiếp theo (PER / PSR-12) hoặc trên cùng dòng.
    • Phiên bản PHP: phiên bản cũ nhất mà mã phải chạy được.
    • Nháy đơn và Dấu phẩy cuối cho danh sách nhiều dòng.
  4. Sao chép hoặc tải kết quả xuống.

Nếu mã có lỗi cú pháp, thông báo sẽ nêu bộ phân tích đang chờ đợi điều gì, cùng dòng và cột nơi nó dừng lại.

Ví dụ

Mã ví dụ là một controller kiểu Laravel với mọi thứ bị nhồi vào nhau: một câu lệnh use gộp nhóm, một mảng thuộc tính, constructor promotion, một lời gọi validation, một câu if viết trên một dòng và một array_map dùng arrow function. Sau khi định dạng, dấu ngoặc của mỗi method chuyển xuống dòng riêng, toán tử và => có thêm dấu cách, thân if được mở rộng, và các lời gọi response()->json() dài được ngắt dòng với mỗi phần tử mảng một dòng kèm dấu phẩy cuối.

Những gì công cụ không thay đổi

Công cụ định dạng chỉ thay đổi bố cục. Nó không đổi tên biến, không sắp xếp lại câu lệnh use, không chuyển array() sang cú pháp rút gọn và không sửa logic. Chú thích, bao gồm cả khối PHPDoc, được giữ lại và thụt lề lại theo mã xung quanh.

Mẹo

  • Dùng cùng độ rộng dòng và phiên bản PHP như cấu hình Prettier hoặc PHP-CS-Fixer của dự án để tránh diff bị xáo trộn.
  • Định dạng một đoạn mã sao chép từ log hay stack trace giúp đọc dễ hơn nhiều.
  • Nếu bạn chia sẻ mã trong một issue, hãy định dạng trước để người review tập trung vào việc mã làm gì.

Câu hỏi thường gặp

› Công cụ tuân theo phong cách viết mã nào?

Mặc định, kết quả tuân theo PER Coding Style, phiên bản kế nhiệm PSR-12 do PHP-FIG công bố. Dấu ngoặc nhọn của class và method nằm trên dòng riêng, dấu ngoặc của cấu trúc điều khiển giữ trên cùng dòng, và thụt lề là bốn dấu cách.

› Tại sao phiên bản PHP lại quan trọng?

Một số cú pháp chỉ hợp lệ từ một phiên bản nhất định. Ví dụ, dấu phẩy cuối trong danh sách tham số cần PHP 8.0, nên khi chọn phiên bản cũ hơn, công cụ định dạng sẽ bỏ chúng đi. Hãy chọn phiên bản cũ nhất mà mã của bạn phải chạy được.

› Có định dạng được tệp trộn lẫn HTML và PHP không?

Có. Hỗ trợ tệp template có HTML nội tuyến và thẻ echo rút gọn. Phần PHP được định dạng, còn HTML ở giữa được giữ nguyên.

› Mã của tôi có bị tải lên không?

Không. Công cụ định dạng chạy hoàn toàn trong trình duyệt của bạn và không có gì được gửi lên máy chủ.