Tag Archive .PSR

Byphunsanit

จัด code php ตาม PHR 2

ผู้พัฒนา framewordk หลายๆเจ้าช่วยกันออกแบบมาตราฐานการจัด code php ให้เป็นมาตราฐานเดียวกัน จะได้ดูง่าย เรียกว่า coding style guide “PSR” รายละเอียดมีไม่กี่ข้อ ประมาณ 1 หน้า A4 เท่านั้นแต่การที่ต้องมาจัด code ทุกหน้า (วันนี้ผมจัดไป 500 ไฟล์) ก็เยอะไป แถมเสี่ยงที่จะทำผิดพลาดสูง

ใน Sublime Text จะมี plugins ชื่อ phpfmt สามารถช่วยเราจัดรูปแบบให้ทุกครั้งที่บันทึกข้อมูล (^_^)

ถ้าไม่เคยลง package control มาก่อนให้ลง package control ก่อน

  1. โดยไปที่ 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 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')
  2. รอให้ มี box เตือนขึ้นมาปิดซับลาม แล้วเปิดขึ้นมาใหม่

ลง phpfmt โดย

  1. กด ctrl shift และ P พร้อมกัน จะมี กล่องขึ้นมาด้านบนตรงกลาง
  2. เลือก Package Control: Install Package
  3. เลือก 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.