Yii 2 Framework Best practice
ทำไมต้องใช้ PHP Framework• มกี ำรเขียนโคด้ ที่เปน็ มำตรฐำน ช่วยลดและกำจดั โค้ดทีไ่ มจ่ ำเป็น• ชว่ ยลดระยะเวลำในกำรทำงำนเช่นเรอ่ื งควำมปลอดภัย และกำรสรำ้ งฟอรม์• ชว่ ยให้กำรทำงำนเปน็ ทมี งำ่ ยขน้ึ เพรำะต้องเขยี นโค้ดในมำตรฐำนเดยี วกัน• ช่วยในกำรบำรงุ รกั ษำโคด้ เปน็ ไปได้ง่ำยขึ้น• มี community ที่เข้มแข็ง และเรำสำมำรถถำมตอบ และขอคำแนะนำได้
Understanding MVC• MVC (Model – View – Controller)• Model คือส่วนของรูปแบบของข้อมลู ตำ่ งๆ โดยเฉพำะขอ้ มลู จำกตำรำงฐำนขอ้ มลู น่ันเอง• View คอื ส่วนที่ใชส้ ำหรบั แสดงผลข้อมูลต่ำงๆ ไม่ว่ำจะมำจำกฐำนขอ้ มูลหรอื กำรคำนวณ ตำ่ งๆ ในรปู แบบหนำ้ เว็บเพจ• Controller คือสว่ นควบคุม รับคำสัง่ สง่ ต่อหนำ้ ท่ตี ่ำงๆ ไม่วำ่ จะเป็นกำรรับค่ำ กำรคำนวณ กำรคน้ หำจำกฐำนข้อมลู เป็นตน้
Model: Best practices• ประกอบดว้ ยโค้ดในส่วน business data• ประกอบด้วยโคด้ ในส่วนของกำรตรวจสอบควำมถูกตอ้ งของขอ้ มลู• ประกอบด้วย method กำรทำงำนของ business logic• อยำ่ เขยี นโค้ดเกยี่ วกบั กำร request, session เกย่ี วกับสภำพแวดลอ้ มของระบบ• ระวงั หรือหลกี เล่ียงโคด้ เก่ียวกบั HTML ในส่วนของกำรแสดงผลใน model ใหไ้ ปเขยี นที่ views แทน
View: Best practices• VIEW จะต้องมโี ค้ดเฉพำะ HTML และ PHP ท่เี ก่ยี วขอ้ งกบั กำรแสดงผล จัดรปู แบบขอ้ มูล ต่ำงๆ เทำ่ นัน้• จะต้องไมม่ โี ค้ดเกย่ี วกบั กำร query ฐำนขอ้ มูลต่ำงๆ• หลีกเลย่ี งกำรรับคำ่ $_GET, $_POST เพรำะเปน็ หน้ำท่ีของ Controller• ถ้ำมกี ำรรบั คำ่ มำจำก model จะต้องไม่ไปแกไ้ ขคำ่ ทร่ี บั มำ• พยำยำมใช้ class ในกลมุ่ helpers เพ่ือช่วยจัดรูปแบบขอ้ มลู
Controller: Best practices• Controller มหี นำ้ ทีเ่ กย่ี วกบั กำรประมวลผล request และ responses เม่อื เขยี น controller แล้วรสู้ ึกว่ำโค้ดมันเร่มิ เยอะ ควรแยกโค้ดบำงสว่ นเป็น class อ่นื ดกี ว่ำ มีแนวทำง เขยี นดังน้ี 1. มีไว้เขยี นเกีย่ วกับ request ข้อมูลเชน่ get, post, put 2. มไี วเ้ รียก method เกย่ี วกับ model และเรียก component ตำ่ งๆ 3. มไี ว้สง่ ข้อมลู ต่ำงๆ ให้ view เพ่อื นำไปแสดงผล 4. ไมค่ วรมีโคด้ กำรประมวลผลของ model แต่ถำ้ จำเป็นตอ้ งมีใหไ้ ปเขียนที่ model ดีกว่ำ 5. หลกี เลย่ี งกำรเขียน HTML และโค้ดทีเ่ กย่ี วข้องกบั กำรแสดงผลข้อมลู ใหไ้ ปเขียนท่ี view ดีกว่ำ
Security: Best practices1. File input แน่นอนเรำไม่สำมำรถไว้ใจ input ท่เี ขำ้ มำในระบบได้ เรำควรเขยี นโค้ดเพ่อื กรอง ข้อมูลเหล่ำนี้โดยใน Yii เรำสำมำรถใช้ form validation ได้2. ระวังเรอื่ ง SQL injection แน่นอนควรใชก้ ำร prepared statement โดยใน Yii มสี ว่ นจดั กำร ฐำนขอ้ มูลใหอ้ ยู่แล้วไดแ้ ก่ Active record (มี prepared statement มำพร้อมแลว้ ) และมใี น สว่ นของ Database Access Object และ Query Builder (อันน้ีตอ้ งเขยี นในสว่ น prepared statement ระวังดว้ ยนะครับ)3. ระวัง XSS หรอื cross-site script แนวทำงป้องกันมี 2 วิธีง่ำยๆ ได้แก่ 1. ใช้ class Html helpers และเรียก method encode สำหรับทกุ ๆ กำรแสดงผล 2. ถำ้ สว่ นเนอ้ื หำมโี คด้ Html ตดิ มำดว้ ยให้ใช้ class HtmlPurifier และเรยี กใช้ method process4. ให้เปดิ ส่วนของ CSRF เพอ่ื ปอ้ งกนั กำรปลอม request5. อยำ่ ลมื ปิดเครื่องมอื เก่ียวกับกำร debug เมือ่ เอำขึ้นใชง้ ำนจริง (กำหนด YII_DEBUG = false)
เครอื่ งมอื ทตี่ ้องกำรใช้1. โปรแกรมจำลอง web server ท่มี ี php 5.4 ขึ้นไป เชน่ XAMPP, Wamp เป็นตน้2. โปรแกรม Composer เวอรช์ ัน่ ล่ำสดุ3. โปรแกรม Text editor เชน่ Dreamweaver, Sublime text, Netbeans, PHP Storm4. Github account สำมำรถไปสมัครไดท้ ่ี https://github.com/
ติดตั้ง XAMPP Portable1. Download XAMPP จำก http://sourceforge.net/projects/xampp/files/XAMPP%20Windows/5.6.1 4/xampp-portable-win32-5.6.14-3-VC11.zip/download2. Extract File ลงในไดรฟ์ และไมซ่ ้อนอย่ใู นโฟลเดอรไ์ ดๆ
ตดิ ต้ัง XAMPP Portable3. เปิด xampp-control.exe4. ปรบั แก้ config ของ php โดยเปดิ ไฟล์ php.ini
ติดตั้ง XAMPP Portable5. แก้ไขโดยกำรเพิม่ ชื่อไดรฟ์ท่แี ตก XAMPP อย่ำงนอ้ ย 3 ตำแหน่งได้แก่1. extension_dir 2. browscap 3. เปดิ opensslเมื่อแกไ้ ขครบแล้วให้ save ไฟลต์ ำมปกติ กำรติดตัง้ แบบ portable กเ็ ปน็ อันเรียบร้อย
กำหนดคำ่ ให้ Windows ให้ร้จู กั ที่ตั้งของ PHP1. ไป copy directory ท่ี php.exe ตั้งไว้ก่อน
กำหนดค่ำให้ Windows ให้ร้จู กั ทตี่ ง้ั ของ PHP2. คลิ๊กขวำ My Computer หรือ This PC แลว้ คล๊กิ เลือก Properties จะขึ้นหน้ำตำ่ ง System ให้คลิ๊ก Advance system settings >> Environment variables… แล้ว คล๊ิกที่ Path ในช่องของ System variable แล้วคลิ๊กปมุ่ Edit…
กำหนดคำ่ ให้ Windows ใหร้ ู้จักที่ต้งั ของ PHP3. แก้ไขคำ่ Variable value โดยกำรใส่ ; ไวห้ ลงั สุดแล้วเพม่ิ Path PHP ลงไป (Path ท่เี รำ Copy ไว้ในขอ้ 1 ก็มำ Past ไว้ตรงนีแ้ หละ)
ติดตั้ง Composer1. กำรตดิ ตั้ง Composer สำมำรถดำวน์โหลดได้จำก https://getcomposer.org/Composer-Setup.exe หลังจำกดำวนโ์ หลดเสร็จก็ เรม่ิ ทำกำรติดตง้ั กด Next
ตดิ ตัง้ Composer 3. กรอกท่ตี ั้งของ php.exe ในเคร่อื ง2. กด Next
ตดิ ตั้ง Composer 5. รอ....จนกวำ่ จะติดต้งั เสรจ็4. กด Install เพื่อติดตงั้ ได้เลยครับ
ติดตงั้ Composer 7. กด Finish ... ก็เสรจ็ สมบรู ณ์6. กด Next
ตดิ ตั้ง Composerหลงั จำกนน้ั ให้เปดิ Command Prompt หรือ CMD Dos นั่นเองให้พมิ พ์คำส่งั วำ่ composerถ้ำไดต้ ำมภำพกเ็ ปน็ อนั เรียบร้อย Composer พร้อมใช้งำน
ติดต้งั Yii 2 Framework Advanced templateสำมำรถเขำ้ ไปดวู ิธกำรตดิ ต้งั และ copy คำสงั่ ได้จำกเว็บไซต์https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/start-installation.md1. เปิด command window (DOS)2. ติดตง้ั composer plugin สำหรบั Yii 2 (ติดตั้งแค่คร้งั เดียว โปรเจ็คต่อไปไม่ตอ้ งใชค้ ำส่งั นกี้ ่อนแล้ว)composer global require \"fxp/composer-asset-plugin:~1.1.0\"
ติดตง้ั Yii 2 Framework Advanced template3. เปล่ียน directory ไปยัง webroot ของเวบ็ เซิฟเวอร์4. ติดตง้ั Yii 2 โดยใช้คำสงั่composer create-project --prefer-dist yiisoft/yii2-app-advanced yii-applicationคำวำ่ yii-application ท่ขี ดี เส้นไตห้ มำยถงึ ชื่อโฟลเดอร์โปรเจ็คของเรำ ซึง่ สำมำรถใช้ชอ่ื อื่นได้
ติดตั้ง Yii 2 Framework Advanced template5. เปลยี่ น directory ไปยัง webroot ของเว็บเซฟิ เวอร์6. ติดต้งั Yii 2 โดยใช้คำส่ังcomposer create-project --prefer-dist yiisoft/yii2-app-advanced yii-applicationคำวำ่ yii-application ที่ขีดเสน้ ไต้หมำยถึงชื่อโฟลเดอรโ์ ปรเจ็คของเรำ ซ่ึงสำมำรถใช้ชอื่ อน่ื ได้
ตดิ ตั้ง Yii 2 Framework Advanced template3. จำกนนั้ composer ก็จะตดิ ตัง้ Yii 2 ไปเรอ่ื ยๆ แต่หำกเคร่ืองยังไม่เคยติดตัง้ Yii 2 มำ กอ่ น ระหว่ำงกำรตดิ ต้ัง จะตอ้ งกรอก Github Token ซงึ่ ตอ้ งไปสรำ้ งมำจำกเวบ็ ไซต์ https://github.com
ติดตัง้ Yii 2 Framework Advanced template3. กำรสร้ำง Github Token 3.1 หลังจำกสมัคร account แล้วเวบ็ ไซต์ https://github.com และเข้ำสรู ะบบ 3.2 คลิกที่เมนู account >> settings (มุมบน-ขวำ)
ตดิ ตั้ง Yii 2 Framework Advanced template 3.3 คลก๊ิ เมนู Personal access tokens (ดำ้ นซำ้ ย)
ตดิ ตั้ง Yii 2 Framework Advanced template 3.4 คล๊กิ ปุ่ม Generate new token (ด้ำนขวำ-บน)
ตดิ ต้งั Yii 2 Framework Advanced template 3.5 ตังชื่อ Token (อะไรก็ได้) แล้วคลก๊ิ ปุ่ม Generate Token (สเี ขียว)
ติดตง้ั Yii 2 Framework Advanced template 3.6 เอำรหสั โคด้ ท่ไี ดจ้ ำกกำร Generate token ไปใส่ใน Command Prompt หรือCMD Dos ที่ Composer เรียกหำ Copy แลว้ เอำไป Paste
ตดิ ต้งั Yii 2 Framework Advanced template 3.7 รอจนกวำ่ Composer Download และตดิ ตั้ง Yii2 ให้แล้วเสร็จ
ตดิ ตง้ั Yii 2 Framework Advanced template4. ใช้ command พมิ พ์คำสง่ั ต่อไปนี้ - cd ชื่อโฟลเดอร์โปรเจ็ค - php init - 0 (ศนู ย)์ - yes เพื่อยืนยัน
ติดต้งั Yii 2 Framework Advanced template5. เป็นอันเสร็จเรียบร้อยในกำรตดิ ต้ัง Yii 2 Framework Advanced template
ตดิ ต้งั Yii 2 Framework Advanced template6. หลังจำกเรียบร้อยหมดแล้ว ... กล็ องมำทดสอบวำ่ ใช้งำนได้ไหม Frontend Backendhttp://localhost/yii-application/frontend/web/ http://localhost/yii-application/backend/web/
Search
Read the Text Version
- 1 - 32
Pages: