Thêm game tại WuGames.ioTài trợKhám phá kho game trình duyệt miễn phí — chơi ngay, không tải, không đăng ký.Chơi ngay

Định dạng & Nén PHP

Công cụ định dạng, làm đẹp, nén và kiểm tra tuân thủ PSR-12 / PER-CS cho PHP miễn phí. Chạy 100% trong trình duyệt, code riêng tư không rời khỏi máy bạn.

Định dạng PHP - Format và Làm đẹp PHP Online

Công cụ định dạng và làm đẹp PHP online mạnh mẽ giúp bạn format, làm đẹp và nén code PHP. Có tính năng tô sáng cú pháp, hỗ trợ phong cách PSR-2 và tùy chỉnh thụt lề. Hoàn hảo cho lập trình viên PHP và backend developer.

Nút Kiểm tra PSR-12 báo cáo gì và đọc thế nào?

Kiểm tra PSR-12 chạy một cuộc rà soát nhanh trong trình duyệt các quy tắc phong cách cấu trúc và liệt kê từng vấn đề kèm số dòng: dùng tab để thụt lề (PSR-12 yêu cầu 4 dấu cách), thẻ đóng ?> trong tệp PHP thuần, thẻ mở ngắn <? thay vì <?php / <?=, khoảng trắng cuối dòng, thiếu dòng mới cuối tệp và thiếu dòng trống sau khai báo namespace. Huy hiệu xanh nghĩa là đoạn mã của bạn vượt qua các kiểm tra này; huy hiệu đỏ đếm số vi phạm. Đây là cổng chất lượng nhanh phản ánh phpcs/php-cs-fixer trong CI — không phải phân tích AST đầy đủ — nên dùng để bắt các vấn đề chặn merge phổ biến nhất trước khi commit. Nhấn Định dạng sau đó để tự động sửa hầu hết (thụt lề, ngoặc nhọn và khoảng trắng cuối) trong một bước.

Kiểu ngoặc nhọn PSR-2 vs PER-CS: giữ bật ô PSR-2 cho bố cục PSR-12 cổ điển (ngoặc mở của lớp và hàm trên dòng riêng, ngoặc của cấu trúc điều khiển trên cùng dòng). Bỏ chọn để dùng kiểu K&R (1TBS) mà một số nhóm sử dụng. Các dự án hiện đại theo PER Coding Style (kế thừa PSR-12, được Laravel và Symfony áp dụng) giữ nguyên quy tắc ngoặc như PSR-12, nên trạng thái bật mặc định khớp cả hai chuẩn.

Trình định dạng PHP này tuân chuẩn phong cách mã nào?

Mã PHP hiện đại thường tuân PSR-12 (Extended Coding Style) do nhóm PHP-FIG công bố, mở rộng PSR-1 và PSR-2 cũ. PSR-12 yêu cầu thụt lề 4 dấu cách (không tab), dấu ngoặc nhọn mở cùng dòng với hàm và lớp, một dòng trắng sau khai báo namespace và use, và từ khóa hiển thị trên mọi thuộc tính và phương thức. Các trình định dạng phổ biến như PHP_CodeSniffer với chuẩn PSR12 và PHP-CS-Fixer với ruleset @PSR12 thực thi các quy tắc này. PER Coding Style (Per-CS 2.0, 2023) là phiên bản mới được Composer và các framework lớn như Laravel và Symfony công nhận, thay thế PSR-12 cho tương lai.

Vì sao tệp PHP của tôi không qua được kiểm tra PSR-12?

Vi phạm PSR-12 thông thường gồm: dùng tab thay vì dấu cách thụt lề, dấu ngoặc mở cùng dòng với phương thức (phải xuống dòng cho phương thức/hàm nhưng cùng dòng cho cấu trúc điều khiển), thiếu hiển thị trên thuộc tính lớp (public/protected/private), khoảng trắng cuối dòng, không có dòng mới ở cuối tệp, hoặc thẻ `<?php` theo ngay bằng mã không có dòng trắng. Chạy `phpcs --standard=PSR12 file.php` hoặc `php-cs-fixer fix --rules=@PSR12 file.php` để xem chính xác vi phạm và tự động sửa định dạng. Cả hai công cụ tích hợp với VSCode, PhpStorm và pipeline CI qua script composer.

Tối ưu hóa PHP khác tối ưu hóa JavaScript thế nào?

Minify PHP chủ yếu loại bỏ khoảng trắng, chú thích và định dạng không cần thiết vì mã chạy phía máy chủ, khách không bao giờ thấy. Minify JavaScript thêm đổi tên biến, kéo khai báo lên đầu và áp dụng các biến đổi AST mạnh vì mã được gửi đến trình duyệt và mỗi byte đều quan trọng. Với PHP, OPcache biên dịch bytecode tự động nên minify nguồn hầu như không có lợi ích chạy. Chỉ minify để làm tối nghĩa thư viện phân phối hoặc giảm dung lượng đĩa. Công cụ như PHP Beautifier và Pretty Print đảo ngược quy trình để gỡ lỗi. RFC 7159 (JSON) và PSR-12 (PHP) đề nghị giữ mã có định dạng để con người đọc được.

Khác biệt giữa thẻ ngắn và thẻ dài trong PHP là gì?

Thẻ dài `<?php ... ?>` là hình thức chuẩn yêu cầu bởi PSR-1. Thẻ ngắn `<? ... ?>` và echo ngắn `<?= ... ?>` phụ thuộc chỉ thị `short_open_tag` trong php.ini. PHP 5.4+ luôn bật `<?=` bất kể chỉ thị, nên dùng an toàn. Thẻ ngắn `<?` không khuyến nghị vì xung đột với khai báo XML (`<?xml ... ?>`) và phá tính di động của mã. PSR-1 khuyên chỉ `<?php` cho tệp mã và `<?=` cho mẫu. Thẻ đóng `?>` chính thức được khuyến nghị bỏ trong tệp PHP thuần để tránh xuất khoảng trắng vô tình trước header HTTP.

Định dạng & Nén PHP — Công cụ định dạng, làm đẹp, nén và kiểm tra tuân thủ PSR-12 / PER-CS cho PHP miễn phí. Chạy 100% trong trình duyệt, code
Định dạng & Nén PHP

Tôi xử lý độ dài dòng và ngắt dòng trong PHP thế nào?

PSR-12 quy định giới hạn mềm 120 ký tự và cứng 80 cho màn hình hẹp — dù hầu hết mã hiện đại dùng 120. Gọi phương thức dài nên ngắt trước toán tử chấm/mũi tên, mỗi cuộc gọi xích trên dòng riêng canh với đối tượng nhận. Chữ ký hàm có nhiều tham số dùng mỗi tham số một dòng, với dấu ngoặc mở cuối dòng tên hàm và dấu ngoặc đóng trên dòng riêng canh với từ khóa `function`. Quy tắc `method_argument_space` và `line_length_limit` của php-cs-fixer tự động hóa việc này. Tránh ép dòng giữa biểu thức làm hỏng tính dễ đọc.

Khác biệt giữa định dạng và tái cấu trúc là gì?

Định dạng chỉ thay đổi khoảng trắng, thụt lề và kiểu dấu nháy — AST (cây cú pháp trừu tượng) vẫn giống hệt, nên hành vi không đổi. Tái cấu trúc thay đổi cấu trúc mã để đổi tên, trích phương thức, gộp lớp hoặc áp dụng mẫu thiết kế; cả AST và hành vi chạy đều có thể đổi. Công cụ như PHP-CS-Fixer (định dạng), Rector (tái cấu trúc), PHPStan (phân tích tĩnh) và Psalm (kiểm kiểu) phục vụ các giai đoạn khác nhau. Luôn chạy trình định dạng trong CI để giữ phong cách đồng nhất; dành tái cấu trúc cho người duyệt có chủ đích với độ phủ test đầy đủ. Trộn chung trong một commit làm việc duyệt mã cực khó.

Tôi định dạng chuỗi heredoc và nowdoc đúng cách thế nào?

Heredoc (`<<<EOT ... EOT`) và nowdoc (`<<<'EOT' ... EOT`) là cú pháp chuỗi đa dòng được giới thiệu trong PHP 5.3+ và cải tiến trong PHP 7.3 với dấu kết thúc linh hoạt và hỗ trợ thụt lề. PSR-12 yêu cầu định danh kết thúc trên dòng riêng, thụt lề khớp với mã xung quanh (tính năng PHP 7.3+). Ví dụ: `$sql = <<<SQL\n SELECT * FROM users\n SQL;` — thụt lề của `SQL;` bị bóc khỏi mỗi dòng nội dung. Heredoc nội suy biến như chuỗi nháy kép; nowdoc thì không. Dùng nowdoc cho SQL, regex hay bất kỳ chuỗi có dấu `$` để ngăn lỗi nội suy không mong muốn.

Tôi có nên dùng namespace và chúng tương tác với định dạng thế nào?

Có — autoload PSR-4 yêu cầu lớp có namespace tương ứng với đường dẫn tệp, và mã PHP hiện đại không thể bảo trì nếu không có namespace. Khai báo namespace phải là lệnh đầu tiên sau `<?php`, tiếp đó là khai báo `use` (nhóm hay riêng), rồi định nghĩa lớp/hàm/hằng. PSR-12 yêu cầu một dòng trắng giữa mỗi khối: namespace, use, định nghĩa. Sắp xếp khai báo use: lớp trước, sau đó hàm (với `use function`), rồi hằng (`use const`), mỗi nhóm theo thứ tự bảng chữ cái. Quy tắc `ordered_imports` trong php-cs-fixer thực thi. Luôn dùng namespace đầy đủ — `\App\Models\User` — trong import cho rõ ràng.

Tính năng chính

  • Định dạng PHP với thụt lề tùy chỉnh (2, 4, 8 khoảng trắng hoặc tab)
  • Hỗ trợ phong cách PSR-2 cho chuẩn code nhất quán
  • Nén PHP để giảm kích thước file
  • Tô sáng cú pháp cho từ khóa, biến, hàm, chuỗi
  • Thống kê thời gian thực (ký tự, dòng, kích thước)
  • Sao chép PHP đã định dạng vào clipboard
  • Tải xuống PHP đã định dạng dưới dạng file .php
  • Tải lên file PHP để định dạng
  • Hỗ trợ chế độ tối
  • Xử lý 100% phía client
  • Hoạt động offline
  • Thiết kế thân thiện mobile