DevToolPal
ไทย

จัดรูปแบบโค้ด PHP

จัดโค้ด PHP ให้สวยงามตาม PER Coding Style (PSR-12) ด้วยปลั๊กอิน Prettier PHP อย่างเป็นทางการ

ทำงานในเครื่อง ไม่มีการอัปโหลด

ตัวเลือก

การเยื้อง
วงเล็บปีกกา

อินพุต

0 ตัวอักษร · 0 B

เอาต์พุต

0 ตัวอักษร · 0 B

เครื่องมือนี้ทำอะไร

ตัวจัดรูปแบบ PHP เปลี่ยนโค้ด PHP ที่รก ถูกย่อ หรือเยื้องไม่สม่ำเสมอ ให้เป็นโค้ดที่สะอาดตามมาตรฐานการเขียนโค้ดของชุมชน รองรับไวยากรณ์สมัยใหม่ ได้แก่ typed และ readonly property, constructor promotion, arrow function, enum, match expression และ attribute

เบื้องหลังคือ Prettier กับปลั๊กอิน PHP อย่างเป็นทางการ ชุดเดียวกับที่ทีม Laravel และ Symfony จำนวนมากใช้ในเอดิเตอร์และ pre-commit hook ผลลัพธ์จึงตรงกับที่เครื่องมือของคุณสร้าง

วิธีใช้งาน

  1. วางโค้ด PHP หรือเปิดไฟล์ .php สำหรับโค้ดสั้น ๆ จะใส่แท็กเปิด <?php หรือไม่ก็ได้
  2. โค้ดที่จัดรูปแบบแล้วจะปรากฏทางขวาขณะพิมพ์
  3. ปรับตัวเลือก:
    • การเยื้อง: 4 ช่องว่างคือมาตรฐาน PSR และยังมี 2 ช่องว่างกับ Tab ให้เลือก
    • ความกว้างบรรทัด: บรรทัดที่ยาวกว่านี้จะถูกตัดขึ้นบรรทัดใหม่ในจุดที่ไวยากรณ์อนุญาต
    • วงเล็บปีกกา: วางวงเล็บปีกกาของคลาสและฟังก์ชันไว้บรรทัดถัดไป (PER / PSR-12) หรือบรรทัดเดียวกัน
    • เวอร์ชัน PHP: เวอร์ชันที่เก่าที่สุดที่โค้ดต้องรันได้
    • เครื่องหมายคำพูดเดี่ยว และ จุลภาคต่อท้าย สำหรับรายการหลายบรรทัด
  4. คัดลอกหรือดาวน์โหลดผลลัพธ์

หากโค้ดมีข้อผิดพลาดทางไวยากรณ์ ข้อความจะบอกว่า parser คาดหวังอะไร และบรรทัดกับคอลัมน์ที่หยุดอ่าน

ตัวอย่าง

ตัวอย่างคือ controller สไตล์ Laravel ที่ทุกอย่างอัดรวมกัน ได้แก่ คำสั่ง use แบบกลุ่ม อาร์เรย์ property, constructor promotion การเรียก validation, if ที่เขียนในบรรทัดเดียว และ array_map กับ arrow function หลังจัดรูปแบบ วงเล็บปีกกาของแต่ละเมธอดจะย้ายไปอยู่บรรทัดของตัวเอง ตัวดำเนินการและ => จะมีช่องว่าง เนื้อหาของ if จะถูกขยายออก และการเรียก response()->json() ที่ยาวจะถูกตัดบรรทัดเป็นรายการอาร์เรย์ละบรรทัดพร้อมจุลภาคต่อท้าย

สิ่งที่ไม่เปลี่ยน

ตัวจัดรูปแบบเปลี่ยนเฉพาะเลย์เอาต์ ไม่เปลี่ยนชื่อตัวแปร ไม่เรียงลำดับคำสั่ง use ใหม่ ไม่แปลง array() เป็นไวยากรณ์แบบสั้น และไม่แก้ตรรกะ คอมเมนต์รวมถึงบล็อก PHPDoc จะถูกเก็บไว้และเยื้องใหม่ตามโค้ดรอบข้าง

เคล็ดลับ

  • ใช้ความกว้างบรรทัดและเวอร์ชัน PHP เดียวกับการตั้งค่า Prettier หรือ PHP-CS-Fixer ของโปรเจกต์ เพื่อไม่ให้ diff เปลี่ยนไปมาโดยไม่จำเป็น
  • การจัดรูปแบบโค้ดที่คัดลอกมาจาก log หรือ stack trace ทำให้อ่านง่ายขึ้นมาก
  • หากจะแชร์โค้ดใน issue ให้จัดรูปแบบก่อน ผู้รีวิวจะได้โฟกัสที่การทำงานของโค้ด

คำถามที่พบบ่อย

› ใช้สไตล์การเขียนโค้ดแบบไหน?

โดยค่าเริ่มต้น ผลลัพธ์จะเป็นไปตาม PER Coding Style ซึ่งเป็นรุ่นต่อจาก PSR-12 ที่เผยแพร่โดย PHP-FIG วงเล็บปีกกาของคลาสและเมธอดอยู่บรรทัดของตัวเอง วงเล็บปีกกาของโครงสร้างควบคุมอยู่บรรทัดเดียวกัน และเยื้องด้วยสี่ช่องว่าง

› ทำไมเวอร์ชัน PHP จึงสำคัญ?

ไวยากรณ์บางอย่างใช้ได้ตั้งแต่บางเวอร์ชันขึ้นไป เช่น จุลภาคต่อท้ายในรายการพารามิเตอร์ต้องใช้ PHP 8.0 หากเป้าหมายเป็นเวอร์ชันเก่ากว่า ตัวจัดรูปแบบจะไม่ใส่ให้ ให้เลือกเวอร์ชันที่เก่าที่สุดที่โค้ดของคุณต้องรันได้

› จัดรูปแบบไฟล์ที่มี HTML ปนกับ PHP ได้ไหม?

ได้ รองรับไฟล์เทมเพลตที่มี HTML แทรกและแท็ก echo แบบสั้น ส่วนที่เป็น PHP จะถูกจัดรูปแบบ และ HTML ระหว่างนั้นจะคงไว้ตามเดิม

› โค้ดของฉันถูกอัปโหลดหรือไม่?

ไม่ ตัวจัดรูปแบบทำงานในเบราว์เซอร์ของคุณทั้งหมด และไม่มีอะไรถูกส่งไปยังเซิร์ฟเวอร์