ผู้พัฒนา framewordk หลายๆเจ้าช่วยกันออกแบบมาตราฐานการจัด code php ให้เป็นมาตราฐานเดียวกัน จะได้ดูง่าย เรียกว่า coding style guide “PSR” รายละเอียดมีไม่กี่ข้อ ประมาณ 1 หน้า A4 เท่านั้นแต่การที่ต้องมาจัด code ทุกหน้า (วันนี้ผมจัดไป 500 ไฟล์) ก็เยอะไป แถมเสี่ยงที่จะทำผิดพลาดสูง
ใน Sublime Text จะมี plugins ชื่อ phpfmt สามารถช่วยเราจัดรูปแบบให้ทุกครั้งที่บันทึกข้อมูล (^_^)
ถ้าไม่เคยลง package control มาก่อนให้ลง package control ก่อน
- โดยไปที่ View > Show Console จะมี กล่องเปิดขึ้นมา
-
- sublime 3 ใส่
import urllib.request,os,hashlib; h = 'eb2297e1a458f27d836c04bb0cbaf282' + 'd0e7a3098092775ccb37ca9d6b2e4b7d'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
- sublime 3 ใส่
- รอให้ มี box เตือนขึ้นมาปิดซับลาม แล้วเปิดขึ้นมาใหม่
หรือ ถ้าใช้ sublime 2 ใส่
import urllib2,os,hashlib; h = 'eb2297e1a458f27d836c04bb0cbaf282' + 'd0e7a3098092775ccb37ca9d6b2e4b7d'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) ); by = urllib2.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); open( os.path.join( ipp, pf), 'wb' ).write(by) if dh == h else None; print('Error validating download (got %s instead of %s), please try manual install' % (dh, h) if dh != h else 'Please restart Sublime Text to finish installation')
ลง phpfmt โดย
- กด ctrl shift และ P พร้อมกัน จะมี กล่องขึ้นมาด้านบนตรงกลาง
- เลือก Package Control: Install Package
- เลือก phpfmp
หลังจากลงปลั๊กอินแล้ว เราจะปรับแต่งตัวเลือกต่างๆ ได้ทาง command (มีเยอะมาก) โดยดูได้จาก phpfmtจะใช้ตัวไหนก็ กด ctrl shif p พร้อมกัน แล้วพิมพ์ลงไปได้เลย
ที่ผมใช้คือ
- phpfmt: indentation with spaces
- ให้ใช้ space ในการเยื้อง code จริงๆผมชอบใช้ tab ในการจัดมากกว่า (อักษรว่าง 4 ตัว แทนได้ด้วยอักษร tab แค่ตัวเดียว source file ของเราจะเล็กลงไปได้เยอะถ้าใช้เท็บ) แต่มาตราฐาน PSR ไม่ให้ใช้ tab ครับ อะไม่เท็บก็ no tab
- phpfmt: toggle auto align
- ให้มันจัด code อัตโนมัติเลย ไม่ต้องมาสั่งอยู่
- phpfmt: toggle autocomplete
- ช่วยเติม code ให้เรา
- phpfmt: toggle format on save
- ปลี่ยนไฟล์เป็น UTF-8 without BOM
- phpfmt: toggle PSR2
- ใช้ formatt แบบล่าสุด
ดูเพิ่มเติม phpfmt : PHP 70 or newer is required.
About the author