ผู้พัฒนา 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.