การเขียนโค้ด PHP ให้สะอาดและมีมาตรฐานเดียวกัน ( Standardization ) เป็นเรื่องสำคัญมาก โดยเฉพาะเมื่อต้องทำงานร่วมกันในทีม PHP Coding Standards Fixer ( PHP CS Fixer ) คือเครื่องมือยอดนิยมที่ช่วยจัดฟอร์แมตโค้ดของคุณให้เป็นไปตามมาตรฐาน เช่น PSR-1, PSR-2 หรือ PSR-12 โดยอัตโนมัติ
🛠 ทำความรู้จักกับ PHP CS Fixer
PHP CS Fixer คือเครื่องมือที่พัฒนาโดยทีมงาน Symfony ซึ่งจะช่วยสแกนไฟล์ PHP ในโปรเจกต์แล้วทำการแก้ไข “Coding Style” ให้ถูกต้องตามกฎที่ตั้งไว้ ไม่ว่าจะเป็นการเว้นวรรค การวางปีกกา หรือการเรียงลำดับการ use statement
🚀 ขั้นตอนการติดตั้ง
วิธีที่แนะนำที่สุดคือการติดตั้งผ่าน Composer โดยติดตั้งไว้ในตัวโปรเจกต์ ( Local installation )composer require --dev friendsofphp/php-cs-fixer
หรือหากต้องการเรียกใช้ได้จากทุกที่ ( Global installation )composer global require friendsofphp/php-cs-fixer
💻 วิธีการใช้งานเบื้องต้น
เมื่อติดตั้งแล้ว คุณสามารถสั่งให้โปรแกรมตรวจสอบและแก้ไขโค้ดได้ทันทีด้วยคำสั่ง
- ตรวจสอบก่อนแก้ไข ( Dry-run )
หากต้องการดูว่ามีส่วนไหนที่ผิดมาตรฐานบ้างแต่ยังไม่อยากให้เครื่องมือแก้ไขไฟล์จริงvendor/bin/php-cs-fixer fix src --diff --dry-run - สั่งแก้ไขโค้ดทันที
หากมั่นใจแล้วและต้องการให้เครื่องมือจัดการแก้ไฟล์ในโฟลเดอร์srcให้ทั้งหมดvendor/bin/php-cs-fixer fix src
⚙️ การตั้งค่าผ่านไฟล์ .php-cs-fixer.dist.php
เพื่อให้ทุกคนในทีมใช้มาตรฐานเดียวกัน เราควรกำหนดค่าไว้ในไฟล์คอนฟิก โดยสร้างไฟล์ชื่อ .php-cs-fixer.dist.php ไว้ที่ Root ของโปรเจกต์
<?php
$finder = PhpCsFixer\Finder::create()
->in(__DIR__)
->exclude('vendor');
$config = new PhpCsFixer\Config();
return $config->setRules([
'@PSR12' => true,
'array_syntax' => ['syntax' => 'short'],
'ordered_imports' => ['sort_algorithm' => 'alpha'],
'no_unused_imports' => true,
])
->setFinder($finder);
คำอธิบายกฎพื้นฐาน
- @PSR12: ใช้มาตรฐานล่าสุดที่แนะนำโดย PHP-FIG
- array_syntax: บังคับใช้
[]แทนarray() - no_unused_imports: ลบบรรทัด
useที่ไม่ได้ใช้งานออกอัตโนมัติ
💡 ข้อแนะนำเพิ่มเติม
- Backup ก่อนเสมอ: อย่างที่คุณเคยทราบ การเปลี่ยนแปลงระบบ ควรมีการ Backup หรือ Snapshot ไว้ก่อน สำหรับ Code ควรมีการ Commit ลง Git ไว้ให้เรียบร้อยก่อนสั่ง
fixเพื่อให้สามารถ Revert กลับได้หากผลลัพธ์ไม่เป็นอย่างที่คิด - CI/CD Integration: คุณควรใส่ PHP CS Fixer เข้าไปในกระบวนการ Pipeline ( เช่น GitHub Actions ) เพื่อตรวจสอบว่าโค้ดที่ถูกส่งขึ้นมา ( Pull Request ) ผ่านมาตรฐานก่อนที่จะ Merge เสมอ
- Editor Extension: ติดตั้งปลั๊กอินใน VS Code หรือ PHPStorm เพื่อให้มันจัดฟอร์แมตให้ทุกครั้งที่กด Save
การใช้ PHP CS Fixer ไม่เพียงแต่ทำให้โค้ดสวยงาม แต่มันยังช่วยลดเวลาในการทำ Code Review เพราะทีมไม่ต้องมานั่งถกเถียงกันเรื่องการเว้นวรรคหรือการวางปีกกาอีกต่อไปครับ
อ่านเพิ่มเติม
