SlideShare a Scribd company logo
Programmer Thailand
เรียนรู้ได้ไว เข้าใจได้ง่าย ใช้งานได้จริง
มานพ กองอุ่น
WWW.PROGRAMMERTHAILAND.COM
2
Yii Framework 2.0.2 & 2.0.3 Dev
~ 1 ~
www.programmerthailand.com
สารบัญ
สารบัญ...........................................................................................................................................................1
บทนํา..............................................................................................................................................................6
บทที่ 1 เริ่มต้นกับ Yii 2 ..................................................................................................................................7
Yii2 คืออะไร.............................................................................................................................................7
ความหมายและที่มา ...........................................................................................................................7
ความต้องการระบบของ Yii2 ..............................................................................................................8
เตรียมเครื่องมือ ........................................................................................................................................9
ติดตั้ง WAMP Server.........................................................................................................................9
ติดตั้ง Composer............................................................................................................................19
การ Update Composer................................................................................................................22
แม่แบบ(Template) ใน Yii2..................................................................................................................23
บทที่ 2 การติดตั้ง Yii2..................................................................................................................................24
การติดตั้ง Yii2 Basic Application Template......................................................................................24
การสร้างฐานข้อมูลสําหรับ yii2-basic..............................................................................................26
แก้ไขการเชื่อมต่อฐานข้อมูล..............................................................................................................27
การใช้ Migration ใน Yii Basic ........................................................................................................28
การใช้ Gii Generator สําหรับ Basic Template............................................................................30
การสร้าง Virtual Host สําหรับ Yii2 Basic Application Template.............................................38
การจัดการ URL แบบสวยงาม (Pretty URL)...................................................................................41
การติดตั้ง Yii2 Advanced Application Template ............................................................................43
สร้างฐานข้อมูลสําหรับ yii2-advanced............................................................................................45
แก้ไขการเชื่อมต่อฐานข้อมูล..............................................................................................................46
การใช้ Migration ใน Yii Advanced...............................................................................................49
~ 2 ~
www.programmerthailand.com
Gii Generator สําหรับ Advanced Template ..............................................................................51
การสร้าง Virtual Host สําหรับ Yii2 Advanced Application Template....................................57
การจัดการ URL แบบสวยงาม (Pretty URL)...................................................................................61
การ Update Yii2...................................................................................................................................67
การ Upgrade Version..........................................................................................................................67
บทที่ 3 เข้าใจ Yii2........................................................................................................................................69
หลักการ MVC........................................................................................................................................69
เข้าใจ Model...................................................................................................................................69
เข้าใจ View......................................................................................................................................69
เข้าใจ Controller............................................................................................................................69
การทํางานของ Yii2................................................................................................................................70
โครงสร้าง Yii2........................................................................................................................................71
Hello World กับ Yii2 ...........................................................................................................................72
คุณสมบัติพื้นฐานที่ควรเข้าใจ..................................................................................................................73
เรียนรู้ Routing ใน Yii2 ...................................................................................................................73
รู้จัก Namespace และ Use............................................................................................................76
ชื่อ Alias ใน Yii2..............................................................................................................................76
ทดลองสร้าง Model.........................................................................................................................77
ทดลองสร้าง Controller..................................................................................................................78
ทดลองสร้าง View............................................................................................................................79
การเลือกข้อมูล.................................................................................................................................81
การสร้าง Relation ใน Model........................................................................................................90
การแสดง เพิ่ม แก้ไข และลบข้อมูล ..................................................................................................90
การควบคุมการเข้าถึงโดยใช้ Access Control Filter (ACF)..........................................................101
การควบคุมการเข้าถึงโดยใช้ Role Base Access Control (RBAC)...............................................103
~ 3 ~
www.programmerthailand.com
บทที่ 4 โมดูล (Module) ............................................................................................................................111
การสร้างโมดูลสําหรับ Yii2 Basic Application Template.................................................................111
การสร้าง Model ใน Module.......................................................................................................113
การสร้าง CRUD สําหรับ Module .................................................................................................115
การสร้างโมดูลสําหรับ Yii2 Advanced Application Template .......................................................119
การสร้างโมดูลสําหรับ Frontend...................................................................................................119
การสร้างโมดูลสําหรับ Backend....................................................................................................127
บทที่ 5 ธีม (Theme)..................................................................................................................................136
ธีมสําหรับ Yii2 Basic Application Template...................................................................................136
ติดตั้งแบบไม่ใช้ Composer...........................................................................................................136
ติดตั้งแบบใช้ Composer...............................................................................................................141
ธีมสําหรับ Yii2 Advanced Application Template..........................................................................165
ธีมสําหรับ Frontend.....................................................................................................................166
ธีมสําหรับ Backend.......................................................................................................................167
บทที่ 6 การติดตั้ง Extension เสริม............................................................................................................170
Yii2 User..............................................................................................................................................170
วิธีการติดตั้ง....................................................................................................................................170
วิธีการตั้งค่า ....................................................................................................................................171
Yii2 Admin..........................................................................................................................................174
วิธีติดตั้ง..........................................................................................................................................174
วิธีตั้งค่า...........................................................................................................................................175
การใช้งาน.......................................................................................................................................178
บทที่ 7 ระบบจัดการงาน (Task Manager)................................................................................................188
วิเคราะห์ระบบ......................................................................................................................................188
ผู้ดูแลระบบ.....................................................................................................................................188
~ 4 ~
www.programmerthailand.com
เจ้าหน้าที่........................................................................................................................................188
ออกแบบฐานข้อมูล...............................................................................................................................188
สร้าง ER Diagram..........................................................................................................................188
การ Forward Engineer ไปยังฐานข้อมูล.......................................................................................189
พจนานุกรมข้อมูล (Data Dictionary)............................................................................................195
สร้าง Project Skeleton......................................................................................................................196
ติดตั้ง Extension..................................................................................................................................199
ติดตั้ง Date Picker.........................................................................................................................199
เขียนโปรแกรม......................................................................................................................................200
สร้าง Virtual host.........................................................................................................................200
แก้ไขการตั้งค่า Yii2.........................................................................................................................203
เพิ่ม user ในตาราง user................................................................................................................204
แก้ไขไฟล์ User Model..................................................................................................................206
เพิ่มข้อมูลเข้าในตาราง project และ task.....................................................................................207
เพิ่ม urlManager...........................................................................................................................207
แก้ไขหน้า index.............................................................................................................................212
สร้าง Model Task และ Project...................................................................................................213
แก้ไข Relation ใน Model Task...................................................................................................216
สร้าง CRUD ด้วย Gii Generator...................................................................................................216
แก้ไขหน้าแสดงผล Task.................................................................................................................220
แก้ไขฟอร์มเพิ่มข้อมูล......................................................................................................................223
เพิ่ม Access Control สําหรับ Controller....................................................................................226
เขียนโปรแกรมหน้า Dashboard....................................................................................................227
สร้าง RBAC ....................................................................................................................................232
บทสรุป.......................................................................................................................................................241
~ 5 ~
www.programmerthailand.com
บทที่ 8 ระบบสารสนเทศทางภูมิศาสตร์ (GIS) ด้วย Google Map .............................................................242
วิเคราะห์ระบบ......................................................................................................................................242
เจ้าหน้าที่........................................................................................................................................242
บุคคลทั่วไป.....................................................................................................................................242
ออกแบบฐานข้อมูล...............................................................................................................................243
ER Diagram...................................................................................................................................243
พจนานุกรมข้อมูล (Data Dictionary)............................................................................................243
สร้าง Project Skeleton......................................................................................................................246
ติดตั้งส่วนเสริม......................................................................................................................................248
Yii2 User........................................................................................................................................248
Yii2 Google Map Library............................................................................................................250
Yii2 Export Table ........................................................................................................................251
เขียนโปรแกรม......................................................................................................................................252
แก้ไขการตั้งค่า Yii2.........................................................................................................................252
สร้าง Model ด้วย Gii Generator.................................................................................................256
สร้าง CRUD ด้วย Gii Generator...................................................................................................259
เขียนโปรแกรมแสดงแผนที่ ...................................................................................................................263
แก้ไข controllers/SiteController.php.......................................................................................263
แก้ไข views/site/index.php........................................................................................................265
กําหนดสิทธิ์ให้เฉพาะเจ้าหน้าที่ สามารถเพิ่ม แก้ไข และลบข้อมูล ..................................................269
บทสรุป.................................................................................................................................................271
คําขอบคุณ..................................................................................................................................................273
ดรรชนี........................................................................................................................................................274
~ 6 ~
www.programmerthailand.com
บทนํา
หนังสือเล่มนี้เกิดจากความตั้งใจของผู้เขียนที่ต้องการสื่อให้ผู้อ่านเข้าใจ Yii Framework 2 อย่าง
ง่ายดาย โดยผู้เขียนได้ศึกษาค้นคว้าจากแหล่งต่างๆ เพื่อกําหนดเป็นแนวทางในการเรียนรู้ Yii Framework 2
และพยายามจัดเรียงบทต่างๆ ให้เป็นขั้นตอนเพื่อให้ผู้อ่านทําความเข้าใจได้ง่ายดายมากยิ่งขึ้น โดยเนื้อหาจะ
มุ่งเน้นเรื่องพื้นฐานที่ควรรู้และเข้าใจก่อนการเขียนโปรแกรม ซึ่งเป็นการปูพื้นฐานให้เข้าใจ Yii Framework 2
หรือ Yii2 โดยเน้นการเรียนรู้ลักษณะ Workshop โดยทําไปด้วยเรียนรู้ไปด้วยทดลอง Run ไปด้วย ซึ่งจะทํา
ให้เข้าใจมากขึ้นทีละเรื่องทีละ Step จนเกิดความเข้าใจและเรียนรู้ได้อย่างรวดเร็ว หนังสือเล่มนี้จึงได้เน้นไปที่
จุดหลักๆ ของการเขียนโปรแกรมโดยใช้ Yii2 ที่จะสามารถพัฒนา Web Application ได้อย่างรวดเร็วมาก
ยิ่งขึ้น และสามารถต่อยอดในอนาคตได้
ทั้งนี้หนังสือเล่มนี้เป็นเพียงแนวทางหนึ่งในการเรียนรู้การพัฒนา Web Application ด้วย Yii
Framework 2 เท่านั้น หากหนังสือเล่มนี้มีข้อขาดตกบกพร่องส่วนไหนทางผู้เขียนต้องกราบขออภัยมา ณ
โอกาสนี้ และหวังเป็นอย่างยิ่งว่าผู้อ่านทุกๆ ท่านจะให้คําแนะนําต่างๆ เพื่อนําไปปรับปรุงแก้ไขต่อไป โดย
สามารถส่งคําแนะนํามาได้ที่ contact@programmerthailand.com จักขอบพระคุณยิ่ง
มานพ กองอุ่น
Programmer Thailand Team
~ 7 ~
www.programmerthailand.com
บทที่ 1 เริ่มต้นกับ Yii 2
Yii2 หรือเรียกเต็มๆ ว่า Yii PHP Framework Version 2 ซึ่งทั้งหมดในหนังสือเล่มนี้จะเรียก Yii2
เพื่อให้เข้าใจง่าย โดยใน Version นี้ถือว่ามีการพัฒนาใหม่ทั้งหมดเลยก็ว่าได้
Yii2 คืออะไร
รูปที่ 1 โลโก้ Yii Framework
ความหมายและที่มา
Yii หรือ ยี่ ย่อมาจาก Yes It Is เป็นเหมือนกับคําตอบหรือคําอุทานก็ว่าได้ที่ว่า มันเร็วจริงหรือเปล่า?
มันมีความปลอดภัยไหม? มันมีความเป็นมืออาชีพหรือเปล่า? มันควรนํามาสร้าง Project ต่อไปหรือเปล่า? ใช่
แล้วมันใช่จริงๆ (Yes It Is)
สําหรับ Yii นั้นเป็น Open Source ซึ่งเป็น PHP Framework สําหรับสร้าง Web Application ที่ถูก
เขียนขึ้นให้รองรับ PHP5 ช่วยให้สร้าง Web Application ได้อย่างรวดเร็ว
Yii นั้นเกิดขึ้นจากคุณ Qiang Xue เป็นผู้ริเริ่ม Yii เมื่อ 1 มกราคม 2008 ซึ่งก่อนหน้าเขาเคยพัฒนา
Prado Framework มาก่อนซึ่งก็มีประสบการณ์ต่างๆ มากกมาย และเห็นจุดอ่อนจุดแข็งของ Framework
และได้นําประสบการณ์เหล่านั้นมาพัฒนาเป็น Yii Framework ในเวอร์ชั่นแรก
หลังจากนั้น Yii Framework ได้รับความนิยมเป็นอย่างมากในวงกว้างมากขึ้นเรื่อยๆ จนถึงปัจจุบัน ได้
ออก Yii Framework ใน เวอร์ชั่น 2 เรียบร้อยแล้วเมื่อวันที่ 12 ตุลาคม 2557 ที่ผ่านมา
~ 8 ~
www.programmerthailand.com
ความต้องการระบบของ Yii2
ความต้องการระบบของ Yii2 นั้น จะใช้ PHP 5.4 ขึ้นไปซึ่งรองรับการเขียนโปรแกรม OOP และมีการ
ปรับปรุงให้สามารถประมวลผลได้ดีมากขึ้น และการเขียนโปรแกรมที่สั้นลง เช่น array() ก็เปลี่ยนเป็น [] เป็น
ต้น โดยการตรวจสอบความต้องการนั้นสามารถเรียก URL ไปที่ไฟล์ requirement.php เพื่อตรวจสอบความ
ต้องการของระบบสําหรับ Yii2 โดยจะมีหน้า Web ดังนี้
รูปที่ 2 ความต้องการ (Requirement) ของ Yii2
~ 9 ~
www.programmerthailand.com
สําหรับ APC Extension นั้นยังไม่มี Version รองรับ PHP5.5.12 จึงยังไม่สามารถติดตั้งได้ครบหมด
ซึ่งผู้เขียนได้ใช้ WAMP Server 2.5 64bit เป็น PHP5.5.12
เตรียมเครื่องมือ
สําหรับการเรียนรู้ Yii2 ในหนังสือเล่มนี้จะใช้ WAMP Server ในการทดสอบ โดยสามารถดู
รายละเอียดได้ที่ www.wampserver.com ซึ่งมีวิธีการดาวน์โหลดและติดตั้งดังนี้
ติดตั้ง WAMP Server
WAMP Server เป็น Web Server ที่สามารถจําลองเครื่องของเป็น Web Server สําหรับ Run
Script PHP และมีฐานข้อมูล MySQL ด้วยนอกจากนั้น Version ล่าสุดของ WAMP Server คือ 2.5 ซึ่งมา
พร้อมกับ Apache 2.4.9 PHP 5.5.12 และ MySQL 5.6.17 ซึ่งเหมาะสําหรับการพัฒนา Web Application
ด้วย Yii2
การดาวน์โหลด WAMP Server
เข้าเว็บไซต์ www.wampserver.com
รูปที่ 3 หน้าเว็บไซต์ www.wampserver.com
จากนั้นเปลี่ยนภาษาเป็น ENGLISH ที่มุมขวาบน เพื่อให้ง่ายต่อการทําความเข้าใจ
~ 10 ~
www.programmerthailand.com
รูปที่ 4 หน้า www.wampserver.com เป็นภาษาอังกฤษ
จากนั้นเลือกเมนู Download หน้าเว็บจะเลื่อนลงมาที่ส่วนของดาวน์โหลด
รูปที่ 5 หน้าดาวน์โหลด WAMP Server
แล้วเลือก Version ตาม Bit ของเครื่องที่ต้องการ ในที่นี้จะเลือก WAMPSERVER (64 BITS & PHP 5.5) 2.5
~ 11 ~
www.programmerthailand.com
รูปที่ 6 หน้าสําหรับดาวน์โหลด WAMP Server
ให้ดาวน์โหลด 2 ไฟล์ นั่นคือลิ้งค์ download directly และ http://www.microsoft.com/en-
us/download/details.aspx?id=30679
Download directly คือ WAMP Server และ Link ที่ 2 คือ VC 11 ซึ่งดาวน์โหลดจากเว็บไซต์ของ
Microsoft
หลังจากดาวน์โหลดแล้วจะได้ 2 ไฟล์ ดังนี้
รูปที่ 7 ไฟล์ต่างๆ หลังจากดาวน์โหลดแล้ว
~ 12 ~
www.programmerthailand.com
ติดตั้ง WAMP Server
ให้ติดตั้ง Vcredist ก่อน โดยเปิดไฟล์ vcredist_x64.exe จะเห็นการ Initializing ดังนี้
รูปที่ 8 การติดตั้ง Visual C++2012
เมื่อติดตั้งเสร็จโปรแกรมจะให้ Restart เครื่อง
รูปที่ 9 หลังจากติดตั้ง Visual C++2012 เสร็จแล้ว
จากนั้นติดตั้ง WAMP Server โดยเปิดไฟล์ wampserver2.5-Apache-2.4.9-Mysql-5.6.17-PHP-5.5.12-
64b.exe
~ 13 ~
www.programmerthailand.com
รูปที่ 10 การติดตั้ง WAMP Server
จากนั้นกดปุ่ม Next >
รูปที่ 11 การยอมรับเงื่อนไขข้อตกลงการใช้งาน
กดยอมรับเงือนไขการใช้งานแล้วกดปุ่ม Next >
~ 14 ~
www.programmerthailand.com
รูปที่ 12 การเลือกที่เก็บ WAMP Server
เปลี่ยนที่เก็บ Project จาก c: เป็น d: หรือ Drive อื่นๆ ตามต้องการ แล้วกดปุ่ม Next >
รูปที่ 13 การสร้าง Shortcut สําหรับ WAMP Server
สร้าง Short cut ตามต้องการ แล้วกดปุ่ม Next >
~ 15 ~
www.programmerthailand.com
รูปที่ 14 ข้อความสรุปก่อนการติดตั้ง WAMP Server
จะพบกับหน้า Ready to Install จากนั้นกดปุ่ม Install
รูปที่ 15 กําลังติดตั้ง WAMP Server
ระบบจะติดตั้ง WAMP Server ตามขั้นตอน รอสักพัก
~ 16 ~
www.programmerthailand.com
รูปที่ 16 การเลือกไฟล์ explorer.exe
โปรแกรมจะเลือกไฟล์ explorer.exe ให้กด Open
รูปที่ 17 การกําหนด SMTP สําหรับ WAMP Server
โปรแกรมจะให้เลือกการตั้งค่า SMTP และ Email ในขั้นตอนนี้สามารถกดปุ่ม Next > ได้เลย
~ 17 ~
www.programmerthailand.com
รูปที่ 18 ขั้นตอนสุดท้ายของการติดตั้ง WAMP Server
จะเข้าสู่ขั้นตอนสุดท้ายสามารถกดปุ่ม Finish เพื่อ Run WAMP Server หลังการติดตั้งทันที
รูปที่ 19 Icon ของ WAMP Server ที่ทํางานเป็นปกติ (สีเขียว)
จะพบ W สีเขียวแสดงว่าระบบทํางาน 100% นั่นคือ Service ของ Apache และ MySQL ทดสอบโดยกด W
สีเขียวแล้วเลือก Localhost
รูปที่ 20 เมนู WAMP Server หลังจากคลิก W สีเขียว
~ 18 ~
www.programmerthailand.com
จะปรากฏหน้า localhost ดังนี้
รูปที่ 21 หน้า localhost หน้าแรก
แสดงว่าติดตั้ง WAMP Server เสร็จเรียบร้อยแล้ว
เนื่องจาก Yii Framework 2 นั้นมีความต้องการ rewrite_module เพื่อการทํา Pretty URL ดังนั้นควรเปิด
การใช้งานส่วนนี้โดยให้กด W->Apache->Apache modules ทําให้แน่ใจว่ามีเครื่องหมายถูกหน้า
rewrite_module
รูปที่ 22 การกําหนด rewrite_module สําหรับ Apache
~ 19 ~
www.programmerthailand.com
ติดตั้ง Composer
Composer เป็นโปรแกรมสําหรับการเรียกใช้งานและติดตั้งโปรแกรมต่างๆ ผ่านเครือข่าย
อินเทอร์เน็ต โดยสามารถดาวน์โหลดได้ที่เว็บไซต์ https://getcomposer.org/
รูปที่ 23 โลโก้ของ Composer
จากนั้นคลิกที่ปุ่ม Download แล้วในที่นี้จะเลือกการติดตั้งสําหรับ Windows โดยคลิกที่ Composer-
Setup.exe
รูปที่ 24 ลิ้งค์สําหรับดาวน์โหลด Composer
และทําการติดตั้ง โดยเปิดไฟล์ Composer-Setup.exe
~ 20 ~
www.programmerthailand.com
รูปที่ 25 หน้าแรกของการติดตั้ง Composer
จากนั้นกดปุ่ม Next>
รูปที่ 26 การเลือก Component สําหรับการติดตั้ง Composer
ใช้การตั้งค่าแบบเริ่มต้น และกดปุ่ม Next>
~ 21 ~
www.programmerthailand.com
รูปที่ 27 การเลือกที่เก็บ PHP สําหรับ Composer
ทําการเลือกที่เก็บ Path ของ PHP ในที่นี้จะอยู่ที่ D:wampbinphpphp5.5.12php.exe จากนั้นกด
Next>
รูปที่ 28 สรุปข้อมูลก่อนการติดตั้ง
จะปรากฏ Ready to Install ให้กดปุ่ม Install
~ 22 ~
www.programmerthailand.com
รูปที่ 29 หน้าเมื่อทําการติดตั้ง Composer เรียบร้อยแล้ว
จะปรากฏการติดตั้งเสร็จสมบูรณ์ แล้วกดปุ่ม Finish
การ Update Composer
สําหรับการ Update Composer นั้นมีความจําเป็นเนื่องจากจะมีคําเตือนตอนการเรียกใช้งาน
composer หากไม่มีการ update หลังจาก 30 วันไปแล้ว สําหรับวิธีการ update ทําได้ง่ายดายมาก เพียง
พิมพ์คําสั่งดังนี้
composer self-update
หลังจากพิมพ์คําสั่งแล้วกดปุ่ม Enter จะปรากฏหน้า Command Prompt ดังนี้
รูปที่ 30 การใช้คําสั่ง Update Composer
~ 23 ~
www.programmerthailand.com
แม่แบบ(Template) ใน Yii2
สําหรับ Yii2 จะมี Web Application Template อยู่ 2 แบบ นั่นคือ Yii2 Basic ใช้สําหรับสร้าง
Web Application ทั่วไป และ Yii2 Advanced ใช้สําหรับสร้าง Web Application ที่มีความซับซ้อน
มากกว่า โดยข้อแตกต่างระหว่าง Yii2 Basic และ Yii2 Advanced นั้นคือการแบ่งระบบของ Yii2 Advanced
นั้นจะแบ่งส่วน backend และ frontend ออกจากกัน แต่ในขณะที่ Yii2 Basic ไม่ได้แบ่งแยก นั่นเอง
~ 24 ~
www.programmerthailand.com
บทที่ 2 การติดตั้ง Yii2
ในการติดตั้ง Yii2 นั้นสามารถทําได้หลายแบบในที่นี้จะแนะนําการติดตั้งผ่าน Composer ซึ่งเป็น
มาตรฐานในการติดตั้ง โดยสามารถนําหลักการนี้ไปประยุกต์ใช้ในการติดตั้ง Framework ตัวอื่นๆ ได้ โดยมี
ขั้นตอนในการติดตั้งดังนี้
ติดตั้ง Plugin เสริมสําหรับ Composer โดยเปิด Command Prompt จากนั้นไปที่
D:wampwww แล้วพิมพ์คําสั่งดังนี้
composer global require "fxp/composer-asset-plugin:1.0.0-
beta4"
แล้วกดปุ่ม Enter โปรแกรมจะทําการ Update PlugIn ที่จําเป็นในการสร้าง Web Application ด้วย Yii2
รูปที่ 31 การเพิ่ม PlugIn สําหรับ Composer
การติดตัÊง Yii2 Basic Application Template
สําหรับ Yii2 Basic Application Template นั้นเป็นการใช้ Yii2 ในการพัฒนา Web Application
แบบทั่วไป สําหรับ Web Application ที่ไม่ซับซ้อนมากนัก โดยมีวิธีการติดตั้งดังนี้
เปิด Command Prompt แล้วไปที่ D:wampwww
~ 25 ~
www.programmerthailand.com
รูปที่ 32 การใช้ Command Prompt เข้า Root Directory ของ Web Server
พิมพ์คําสั่งในการเรียกใช้ composer plugin
composer global require "fxp/composer-asset-plugin:1.0.0"
พิมพ์คําสั่งในการสร้าง Web Application จาก Basic Template ดังนี้
composer create-project --prefer-dist --stability=dev
yiisoft/yii2-app-basic yii2-basic
หมายเหตุ หากต้องการ Yii2 Version ที่เสถียรแล้วไม่ต้องใส่ --stability=dev
แล้วกดปุ่ม Enter จะแสดงรายการไฟล์ต่างๆ ที่สร้างจาก Composer
รูปที่ 33 การติดตั้ง Yii2 Basic Application Template
~ 26 ~
www.programmerthailand.com
ทดสอบ Run หน้าเว็บโดยเข้า URL http://localhost/yii2-basic/web จะปรากฏหน้า Web Application
ดังนี้
รูปที่ 34 หน้าหลักของ Web Application
การสร้างฐานข้อมูลสําหรับ yii2-basic
สําหรับการสร้างฐานข้อมูลนั้นสามารถเข้าบริหารจัดการโดยใช้ phpMyAdmin โดยเข้า URL
http://localhost/phpmyadmin หรือ http://127.0.0.1/phpmyadmin ซึ่งจะได้หน้า Web ดังนี้
รูปที่ 35 หน้า PHPMyAdmin
~ 27 ~
www.programmerthailand.com
คลิกที่ Database จากนั้น ใส่ชื่อฐานข้อมูลในที่นี้จะใช้ yii2_basic และใช้การเข้ารหัสอักขระเป็น
utf8_general_ci ดังนี้ จากนั้นกดปุ่ม Create
รูปที่ 36 การสร้างฐานข้อมูล
จะปรากฏ Popup สีเขียวว่าสร้างฐานข้อมูลชื่อ yii2_basic เรียบร้อยแล้ว
รูปที่ 37 POPUP หลังจากสร้างฐานข้อมูลเสร็จแล้ว
แก้ไขการเชื่อมต่อฐานข้อมูล
แก้ไขการเชื่อมต่อฐานข้อมูลโดยเปิดไฟล์ config/db.php จากนั้นใส่ชื่อฐานข้อมูลที่ต้องการเชื่อมต่อ
พร้อม Username และ Password สําหรับเชื่อมต่อฐานข้อมูล MySQL ในที่นี้คือฐานข้อมูล: yii2_basic
Username: root และ Password ไม่มี ดังนี้
รูปที่ 38 การแก้ไขการติดต่อฐานข้อมูล
~ 28 ~
www.programmerthailand.com
การใช้ Migration ใน Yii Basic
รูปที่ 39 การใช้ Migration ใน Yii Basic
การสร้าง Migration
สร้าง Migration ชื่อ create_post_table โดยพิมพ์คําสั่งดังนี้
yii migrate/create create_post_table
กดปุ่ม Enter จากนั้นพิมพ์ yes เพื่อยืนยันแล้วกดปุ่ม Enter
รูปที่ 40 การเรียกใช้งานเพื่อสร้าง Migration
จะปรากฏไฟล์ m14001_181424_create_post_table.php ใน Folder migrations เรียบร้อยแล้ว
รูปที่ 41 ไฟล์ Migration ที่ถูกสร้างขึ้น
จากนั้นทําการปรับแต่งไฟล์เพื่อใช้ในการสร้างตารางต่างๆ ดังนี้
~ 29 ~
www.programmerthailand.com
รูปที่ 42 การแก้ไขไฟล์ Migration ที่ได้สร้างขึ้น
ทดสอบโดยการเรียก
yii migrate
จะได้การประมวลผลดังนี้
รูปที่ 43 การสั่งให้ Migration ทํางาน
จะเห็นว่ามีตาราง post เกิดขึ้นที่ฐานข้อมูล yii2_basic ดังนี้
~ 30 ~
www.programmerthailand.com
รูปที่ 44 รายการตารางหลังจากสั่ง Migration ให้ทํางาน
เข้าไปปรับแก้ตาราง โดยเพิ่ม Comment ในแต่ละ Field ดังนี้
รูปที่ 45 การปรับแต่ง Comment ในตาราง post
จากนั้นกดปุ่ม Save เพื่อบันทึกการเปลี่ยนแปลง
การใช้ Gii Generator สําหรับ Basic Template
Gii Generator เป็นเครื่องมือที่มีความสําคัญสําหรับ Yii Framework ซึ่งเป็นเครื่องมือที่ช่วยในการ
สร้าง Code ให้สามารถพัฒนา Web Application ได้อย่างรวดเร็วมากยิ่งขึ้นภายใต้ธรรมเนียมของ Yii
Framework
การเข้าใช้งาน Gii Generator นั้นสามารถเรียกจาก URL web/index.php?r=gii สําหรับการติดตั้ง
แบบ Basic โดยจะเห็นหน้าตาของ Web Application ดังนี้
รูปที่ 46 หน้าแรกของ Gii Generator
Ad

Recommended

CMS 115: Creating Accessible MSU Web Content
CMS 115: Creating Accessible MSU Web Content
Montana State University
 
Management Information System
Management Information System
amana fathima
 
Dialog presentation
Dialog presentation
Dilruk Anuranjana
 
Management information system use by Sampath bank
Management information system use by Sampath bank
KavindyaAbeysekara
 
천만 영화의 성공요인 최종
천만 영화의 성공요인 최종
sandew500
 
Information systems in organization
Information systems in organization
Thakshayini Chandramohan
 
Best Profitable Manufacturing & Processing Business Ideas in Jammu & Kashmir,...
Best Profitable Manufacturing & Processing Business Ideas in Jammu & Kashmir,...
Ajjay Kumar Gupta
 
TDS in Tally ERP 9
TDS in Tally ERP 9
Manoj Sain
 
Yii framework 2 basic training
Yii framework 2 basic training
Manop Kongoon
 
หนังสือ Yii Framework Application Workshop เล่ม 1
หนังสือ Yii Framework Application Workshop เล่ม 1
Manop Kongoon
 
Yii2install codingthailand
Yii2install codingthailand
Peerawas Saengthong
 
หนังสือ Yii framework Tip 50 เทคนิค Yii Framework
หนังสือ Yii framework Tip 50 เทคนิค Yii Framework
Manop Kongoon
 
Web Developer study Guideline for Starter
Web Developer study Guideline for Starter
Warodom Dansuwandumrong
 
คู่มือJavascript and Python
คู่มือJavascript and Python
Bongkotporn Jachernram
 
Php basic
Php basic
แค่ผ่านมา และผ่านไป
 
คู่มือ Joomla
คู่มือ Joomla
Jatupon Panjoi
 
Joomla
Joomla
lemonleafgreen
 
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
Sarawut Panchon
 
การใช้งาน phpMyadmin
การใช้งาน phpMyadmin
skiats
 
Php
Php
Naresuan University Library
 
Web Programming path1 23_feb17_Dr.Arnut
Web Programming path1 23_feb17_Dr.Arnut
Asst.Prof.Dr.Arnut Ruttanatirakul
 
Lesson 6
Lesson 6
krunueng1
 
สร้างเว็บไซต์ด้วยWordpress
สร้างเว็บไซต์ด้วยWordpress
kruburapha2012
 
Wordpress
Wordpress
sep27th
 
Web 2.0
Web 2.0
Boonlert Aroonpiboon
 
1. ความรู้เกี่ยวกับการ web programming
1. ความรู้เกี่ยวกับการ web programming
hello8421
 
Dream mx
Dream mx
phochai
 

More Related Content

Similar to หนังสือ Yii framework 2 Web Application Basic ฉบับพื้นฐาน (20)

Yii framework 2 basic training
Yii framework 2 basic training
Manop Kongoon
 
หนังสือ Yii Framework Application Workshop เล่ม 1
หนังสือ Yii Framework Application Workshop เล่ม 1
Manop Kongoon
 
Yii2install codingthailand
Yii2install codingthailand
Peerawas Saengthong
 
หนังสือ Yii framework Tip 50 เทคนิค Yii Framework
หนังสือ Yii framework Tip 50 เทคนิค Yii Framework
Manop Kongoon
 
Web Developer study Guideline for Starter
Web Developer study Guideline for Starter
Warodom Dansuwandumrong
 
คู่มือJavascript and Python
คู่มือJavascript and Python
Bongkotporn Jachernram
 
Php basic
Php basic
แค่ผ่านมา และผ่านไป
 
คู่มือ Joomla
คู่มือ Joomla
Jatupon Panjoi
 
Joomla
Joomla
lemonleafgreen
 
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
Sarawut Panchon
 
การใช้งาน phpMyadmin
การใช้งาน phpMyadmin
skiats
 
Php
Php
Naresuan University Library
 
Web Programming path1 23_feb17_Dr.Arnut
Web Programming path1 23_feb17_Dr.Arnut
Asst.Prof.Dr.Arnut Ruttanatirakul
 
Lesson 6
Lesson 6
krunueng1
 
สร้างเว็บไซต์ด้วยWordpress
สร้างเว็บไซต์ด้วยWordpress
kruburapha2012
 
Wordpress
Wordpress
sep27th
 
Web 2.0
Web 2.0
Boonlert Aroonpiboon
 
1. ความรู้เกี่ยวกับการ web programming
1. ความรู้เกี่ยวกับการ web programming
hello8421
 
Dream mx
Dream mx
phochai
 
Yii framework 2 basic training
Yii framework 2 basic training
Manop Kongoon
 
หนังสือ Yii Framework Application Workshop เล่ม 1
หนังสือ Yii Framework Application Workshop เล่ม 1
Manop Kongoon
 
หนังสือ Yii framework Tip 50 เทคนิค Yii Framework
หนังสือ Yii framework Tip 50 เทคนิค Yii Framework
Manop Kongoon
 
Web Developer study Guideline for Starter
Web Developer study Guideline for Starter
Warodom Dansuwandumrong
 
คู่มือJavascript and Python
คู่มือJavascript and Python
Bongkotporn Jachernram
 
คู่มือ Joomla
คู่มือ Joomla
Jatupon Panjoi
 
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
Sarawut Panchon
 
การใช้งาน phpMyadmin
การใช้งาน phpMyadmin
skiats
 
สร้างเว็บไซต์ด้วยWordpress
สร้างเว็บไซต์ด้วยWordpress
kruburapha2012
 
Wordpress
Wordpress
sep27th
 
1. ความรู้เกี่ยวกับการ web programming
1. ความรู้เกี่ยวกับการ web programming
hello8421
 
Dream mx
Dream mx
phochai
 

หนังสือ Yii framework 2 Web Application Basic ฉบับพื้นฐาน

  • 1. Programmer Thailand เรียนรู้ได้ไว เข้าใจได้ง่าย ใช้งานได้จริง มานพ กองอุ่น WWW.PROGRAMMERTHAILAND.COM 2 Yii Framework 2.0.2 & 2.0.3 Dev
  • 2. ~ 1 ~ www.programmerthailand.com สารบัญ สารบัญ...........................................................................................................................................................1 บทนํา..............................................................................................................................................................6 บทที่ 1 เริ่มต้นกับ Yii 2 ..................................................................................................................................7 Yii2 คืออะไร.............................................................................................................................................7 ความหมายและที่มา ...........................................................................................................................7 ความต้องการระบบของ Yii2 ..............................................................................................................8 เตรียมเครื่องมือ ........................................................................................................................................9 ติดตั้ง WAMP Server.........................................................................................................................9 ติดตั้ง Composer............................................................................................................................19 การ Update Composer................................................................................................................22 แม่แบบ(Template) ใน Yii2..................................................................................................................23 บทที่ 2 การติดตั้ง Yii2..................................................................................................................................24 การติดตั้ง Yii2 Basic Application Template......................................................................................24 การสร้างฐานข้อมูลสําหรับ yii2-basic..............................................................................................26 แก้ไขการเชื่อมต่อฐานข้อมูล..............................................................................................................27 การใช้ Migration ใน Yii Basic ........................................................................................................28 การใช้ Gii Generator สําหรับ Basic Template............................................................................30 การสร้าง Virtual Host สําหรับ Yii2 Basic Application Template.............................................38 การจัดการ URL แบบสวยงาม (Pretty URL)...................................................................................41 การติดตั้ง Yii2 Advanced Application Template ............................................................................43 สร้างฐานข้อมูลสําหรับ yii2-advanced............................................................................................45 แก้ไขการเชื่อมต่อฐานข้อมูล..............................................................................................................46 การใช้ Migration ใน Yii Advanced...............................................................................................49
  • 3. ~ 2 ~ www.programmerthailand.com Gii Generator สําหรับ Advanced Template ..............................................................................51 การสร้าง Virtual Host สําหรับ Yii2 Advanced Application Template....................................57 การจัดการ URL แบบสวยงาม (Pretty URL)...................................................................................61 การ Update Yii2...................................................................................................................................67 การ Upgrade Version..........................................................................................................................67 บทที่ 3 เข้าใจ Yii2........................................................................................................................................69 หลักการ MVC........................................................................................................................................69 เข้าใจ Model...................................................................................................................................69 เข้าใจ View......................................................................................................................................69 เข้าใจ Controller............................................................................................................................69 การทํางานของ Yii2................................................................................................................................70 โครงสร้าง Yii2........................................................................................................................................71 Hello World กับ Yii2 ...........................................................................................................................72 คุณสมบัติพื้นฐานที่ควรเข้าใจ..................................................................................................................73 เรียนรู้ Routing ใน Yii2 ...................................................................................................................73 รู้จัก Namespace และ Use............................................................................................................76 ชื่อ Alias ใน Yii2..............................................................................................................................76 ทดลองสร้าง Model.........................................................................................................................77 ทดลองสร้าง Controller..................................................................................................................78 ทดลองสร้าง View............................................................................................................................79 การเลือกข้อมูล.................................................................................................................................81 การสร้าง Relation ใน Model........................................................................................................90 การแสดง เพิ่ม แก้ไข และลบข้อมูล ..................................................................................................90 การควบคุมการเข้าถึงโดยใช้ Access Control Filter (ACF)..........................................................101 การควบคุมการเข้าถึงโดยใช้ Role Base Access Control (RBAC)...............................................103
  • 4. ~ 3 ~ www.programmerthailand.com บทที่ 4 โมดูล (Module) ............................................................................................................................111 การสร้างโมดูลสําหรับ Yii2 Basic Application Template.................................................................111 การสร้าง Model ใน Module.......................................................................................................113 การสร้าง CRUD สําหรับ Module .................................................................................................115 การสร้างโมดูลสําหรับ Yii2 Advanced Application Template .......................................................119 การสร้างโมดูลสําหรับ Frontend...................................................................................................119 การสร้างโมดูลสําหรับ Backend....................................................................................................127 บทที่ 5 ธีม (Theme)..................................................................................................................................136 ธีมสําหรับ Yii2 Basic Application Template...................................................................................136 ติดตั้งแบบไม่ใช้ Composer...........................................................................................................136 ติดตั้งแบบใช้ Composer...............................................................................................................141 ธีมสําหรับ Yii2 Advanced Application Template..........................................................................165 ธีมสําหรับ Frontend.....................................................................................................................166 ธีมสําหรับ Backend.......................................................................................................................167 บทที่ 6 การติดตั้ง Extension เสริม............................................................................................................170 Yii2 User..............................................................................................................................................170 วิธีการติดตั้ง....................................................................................................................................170 วิธีการตั้งค่า ....................................................................................................................................171 Yii2 Admin..........................................................................................................................................174 วิธีติดตั้ง..........................................................................................................................................174 วิธีตั้งค่า...........................................................................................................................................175 การใช้งาน.......................................................................................................................................178 บทที่ 7 ระบบจัดการงาน (Task Manager)................................................................................................188 วิเคราะห์ระบบ......................................................................................................................................188 ผู้ดูแลระบบ.....................................................................................................................................188
  • 5. ~ 4 ~ www.programmerthailand.com เจ้าหน้าที่........................................................................................................................................188 ออกแบบฐานข้อมูล...............................................................................................................................188 สร้าง ER Diagram..........................................................................................................................188 การ Forward Engineer ไปยังฐานข้อมูล.......................................................................................189 พจนานุกรมข้อมูล (Data Dictionary)............................................................................................195 สร้าง Project Skeleton......................................................................................................................196 ติดตั้ง Extension..................................................................................................................................199 ติดตั้ง Date Picker.........................................................................................................................199 เขียนโปรแกรม......................................................................................................................................200 สร้าง Virtual host.........................................................................................................................200 แก้ไขการตั้งค่า Yii2.........................................................................................................................203 เพิ่ม user ในตาราง user................................................................................................................204 แก้ไขไฟล์ User Model..................................................................................................................206 เพิ่มข้อมูลเข้าในตาราง project และ task.....................................................................................207 เพิ่ม urlManager...........................................................................................................................207 แก้ไขหน้า index.............................................................................................................................212 สร้าง Model Task และ Project...................................................................................................213 แก้ไข Relation ใน Model Task...................................................................................................216 สร้าง CRUD ด้วย Gii Generator...................................................................................................216 แก้ไขหน้าแสดงผล Task.................................................................................................................220 แก้ไขฟอร์มเพิ่มข้อมูล......................................................................................................................223 เพิ่ม Access Control สําหรับ Controller....................................................................................226 เขียนโปรแกรมหน้า Dashboard....................................................................................................227 สร้าง RBAC ....................................................................................................................................232 บทสรุป.......................................................................................................................................................241
  • 6. ~ 5 ~ www.programmerthailand.com บทที่ 8 ระบบสารสนเทศทางภูมิศาสตร์ (GIS) ด้วย Google Map .............................................................242 วิเคราะห์ระบบ......................................................................................................................................242 เจ้าหน้าที่........................................................................................................................................242 บุคคลทั่วไป.....................................................................................................................................242 ออกแบบฐานข้อมูล...............................................................................................................................243 ER Diagram...................................................................................................................................243 พจนานุกรมข้อมูล (Data Dictionary)............................................................................................243 สร้าง Project Skeleton......................................................................................................................246 ติดตั้งส่วนเสริม......................................................................................................................................248 Yii2 User........................................................................................................................................248 Yii2 Google Map Library............................................................................................................250 Yii2 Export Table ........................................................................................................................251 เขียนโปรแกรม......................................................................................................................................252 แก้ไขการตั้งค่า Yii2.........................................................................................................................252 สร้าง Model ด้วย Gii Generator.................................................................................................256 สร้าง CRUD ด้วย Gii Generator...................................................................................................259 เขียนโปรแกรมแสดงแผนที่ ...................................................................................................................263 แก้ไข controllers/SiteController.php.......................................................................................263 แก้ไข views/site/index.php........................................................................................................265 กําหนดสิทธิ์ให้เฉพาะเจ้าหน้าที่ สามารถเพิ่ม แก้ไข และลบข้อมูล ..................................................269 บทสรุป.................................................................................................................................................271 คําขอบคุณ..................................................................................................................................................273 ดรรชนี........................................................................................................................................................274
  • 7. ~ 6 ~ www.programmerthailand.com บทนํา หนังสือเล่มนี้เกิดจากความตั้งใจของผู้เขียนที่ต้องการสื่อให้ผู้อ่านเข้าใจ Yii Framework 2 อย่าง ง่ายดาย โดยผู้เขียนได้ศึกษาค้นคว้าจากแหล่งต่างๆ เพื่อกําหนดเป็นแนวทางในการเรียนรู้ Yii Framework 2 และพยายามจัดเรียงบทต่างๆ ให้เป็นขั้นตอนเพื่อให้ผู้อ่านทําความเข้าใจได้ง่ายดายมากยิ่งขึ้น โดยเนื้อหาจะ มุ่งเน้นเรื่องพื้นฐานที่ควรรู้และเข้าใจก่อนการเขียนโปรแกรม ซึ่งเป็นการปูพื้นฐานให้เข้าใจ Yii Framework 2 หรือ Yii2 โดยเน้นการเรียนรู้ลักษณะ Workshop โดยทําไปด้วยเรียนรู้ไปด้วยทดลอง Run ไปด้วย ซึ่งจะทํา ให้เข้าใจมากขึ้นทีละเรื่องทีละ Step จนเกิดความเข้าใจและเรียนรู้ได้อย่างรวดเร็ว หนังสือเล่มนี้จึงได้เน้นไปที่ จุดหลักๆ ของการเขียนโปรแกรมโดยใช้ Yii2 ที่จะสามารถพัฒนา Web Application ได้อย่างรวดเร็วมาก ยิ่งขึ้น และสามารถต่อยอดในอนาคตได้ ทั้งนี้หนังสือเล่มนี้เป็นเพียงแนวทางหนึ่งในการเรียนรู้การพัฒนา Web Application ด้วย Yii Framework 2 เท่านั้น หากหนังสือเล่มนี้มีข้อขาดตกบกพร่องส่วนไหนทางผู้เขียนต้องกราบขออภัยมา ณ โอกาสนี้ และหวังเป็นอย่างยิ่งว่าผู้อ่านทุกๆ ท่านจะให้คําแนะนําต่างๆ เพื่อนําไปปรับปรุงแก้ไขต่อไป โดย สามารถส่งคําแนะนํามาได้ที่ [email protected] จักขอบพระคุณยิ่ง มานพ กองอุ่น Programmer Thailand Team
  • 8. ~ 7 ~ www.programmerthailand.com บทที่ 1 เริ่มต้นกับ Yii 2 Yii2 หรือเรียกเต็มๆ ว่า Yii PHP Framework Version 2 ซึ่งทั้งหมดในหนังสือเล่มนี้จะเรียก Yii2 เพื่อให้เข้าใจง่าย โดยใน Version นี้ถือว่ามีการพัฒนาใหม่ทั้งหมดเลยก็ว่าได้ Yii2 คืออะไร รูปที่ 1 โลโก้ Yii Framework ความหมายและที่มา Yii หรือ ยี่ ย่อมาจาก Yes It Is เป็นเหมือนกับคําตอบหรือคําอุทานก็ว่าได้ที่ว่า มันเร็วจริงหรือเปล่า? มันมีความปลอดภัยไหม? มันมีความเป็นมืออาชีพหรือเปล่า? มันควรนํามาสร้าง Project ต่อไปหรือเปล่า? ใช่ แล้วมันใช่จริงๆ (Yes It Is) สําหรับ Yii นั้นเป็น Open Source ซึ่งเป็น PHP Framework สําหรับสร้าง Web Application ที่ถูก เขียนขึ้นให้รองรับ PHP5 ช่วยให้สร้าง Web Application ได้อย่างรวดเร็ว Yii นั้นเกิดขึ้นจากคุณ Qiang Xue เป็นผู้ริเริ่ม Yii เมื่อ 1 มกราคม 2008 ซึ่งก่อนหน้าเขาเคยพัฒนา Prado Framework มาก่อนซึ่งก็มีประสบการณ์ต่างๆ มากกมาย และเห็นจุดอ่อนจุดแข็งของ Framework และได้นําประสบการณ์เหล่านั้นมาพัฒนาเป็น Yii Framework ในเวอร์ชั่นแรก หลังจากนั้น Yii Framework ได้รับความนิยมเป็นอย่างมากในวงกว้างมากขึ้นเรื่อยๆ จนถึงปัจจุบัน ได้ ออก Yii Framework ใน เวอร์ชั่น 2 เรียบร้อยแล้วเมื่อวันที่ 12 ตุลาคม 2557 ที่ผ่านมา
  • 9. ~ 8 ~ www.programmerthailand.com ความต้องการระบบของ Yii2 ความต้องการระบบของ Yii2 นั้น จะใช้ PHP 5.4 ขึ้นไปซึ่งรองรับการเขียนโปรแกรม OOP และมีการ ปรับปรุงให้สามารถประมวลผลได้ดีมากขึ้น และการเขียนโปรแกรมที่สั้นลง เช่น array() ก็เปลี่ยนเป็น [] เป็น ต้น โดยการตรวจสอบความต้องการนั้นสามารถเรียก URL ไปที่ไฟล์ requirement.php เพื่อตรวจสอบความ ต้องการของระบบสําหรับ Yii2 โดยจะมีหน้า Web ดังนี้ รูปที่ 2 ความต้องการ (Requirement) ของ Yii2
  • 10. ~ 9 ~ www.programmerthailand.com สําหรับ APC Extension นั้นยังไม่มี Version รองรับ PHP5.5.12 จึงยังไม่สามารถติดตั้งได้ครบหมด ซึ่งผู้เขียนได้ใช้ WAMP Server 2.5 64bit เป็น PHP5.5.12 เตรียมเครื่องมือ สําหรับการเรียนรู้ Yii2 ในหนังสือเล่มนี้จะใช้ WAMP Server ในการทดสอบ โดยสามารถดู รายละเอียดได้ที่ www.wampserver.com ซึ่งมีวิธีการดาวน์โหลดและติดตั้งดังนี้ ติดตั้ง WAMP Server WAMP Server เป็น Web Server ที่สามารถจําลองเครื่องของเป็น Web Server สําหรับ Run Script PHP และมีฐานข้อมูล MySQL ด้วยนอกจากนั้น Version ล่าสุดของ WAMP Server คือ 2.5 ซึ่งมา พร้อมกับ Apache 2.4.9 PHP 5.5.12 และ MySQL 5.6.17 ซึ่งเหมาะสําหรับการพัฒนา Web Application ด้วย Yii2 การดาวน์โหลด WAMP Server เข้าเว็บไซต์ www.wampserver.com รูปที่ 3 หน้าเว็บไซต์ www.wampserver.com จากนั้นเปลี่ยนภาษาเป็น ENGLISH ที่มุมขวาบน เพื่อให้ง่ายต่อการทําความเข้าใจ
  • 11. ~ 10 ~ www.programmerthailand.com รูปที่ 4 หน้า www.wampserver.com เป็นภาษาอังกฤษ จากนั้นเลือกเมนู Download หน้าเว็บจะเลื่อนลงมาที่ส่วนของดาวน์โหลด รูปที่ 5 หน้าดาวน์โหลด WAMP Server แล้วเลือก Version ตาม Bit ของเครื่องที่ต้องการ ในที่นี้จะเลือก WAMPSERVER (64 BITS & PHP 5.5) 2.5
  • 12. ~ 11 ~ www.programmerthailand.com รูปที่ 6 หน้าสําหรับดาวน์โหลด WAMP Server ให้ดาวน์โหลด 2 ไฟล์ นั่นคือลิ้งค์ download directly และ http://www.microsoft.com/en- us/download/details.aspx?id=30679 Download directly คือ WAMP Server และ Link ที่ 2 คือ VC 11 ซึ่งดาวน์โหลดจากเว็บไซต์ของ Microsoft หลังจากดาวน์โหลดแล้วจะได้ 2 ไฟล์ ดังนี้ รูปที่ 7 ไฟล์ต่างๆ หลังจากดาวน์โหลดแล้ว
  • 13. ~ 12 ~ www.programmerthailand.com ติดตั้ง WAMP Server ให้ติดตั้ง Vcredist ก่อน โดยเปิดไฟล์ vcredist_x64.exe จะเห็นการ Initializing ดังนี้ รูปที่ 8 การติดตั้ง Visual C++2012 เมื่อติดตั้งเสร็จโปรแกรมจะให้ Restart เครื่อง รูปที่ 9 หลังจากติดตั้ง Visual C++2012 เสร็จแล้ว จากนั้นติดตั้ง WAMP Server โดยเปิดไฟล์ wampserver2.5-Apache-2.4.9-Mysql-5.6.17-PHP-5.5.12- 64b.exe
  • 14. ~ 13 ~ www.programmerthailand.com รูปที่ 10 การติดตั้ง WAMP Server จากนั้นกดปุ่ม Next > รูปที่ 11 การยอมรับเงื่อนไขข้อตกลงการใช้งาน กดยอมรับเงือนไขการใช้งานแล้วกดปุ่ม Next >
  • 15. ~ 14 ~ www.programmerthailand.com รูปที่ 12 การเลือกที่เก็บ WAMP Server เปลี่ยนที่เก็บ Project จาก c: เป็น d: หรือ Drive อื่นๆ ตามต้องการ แล้วกดปุ่ม Next > รูปที่ 13 การสร้าง Shortcut สําหรับ WAMP Server สร้าง Short cut ตามต้องการ แล้วกดปุ่ม Next >
  • 16. ~ 15 ~ www.programmerthailand.com รูปที่ 14 ข้อความสรุปก่อนการติดตั้ง WAMP Server จะพบกับหน้า Ready to Install จากนั้นกดปุ่ม Install รูปที่ 15 กําลังติดตั้ง WAMP Server ระบบจะติดตั้ง WAMP Server ตามขั้นตอน รอสักพัก
  • 17. ~ 16 ~ www.programmerthailand.com รูปที่ 16 การเลือกไฟล์ explorer.exe โปรแกรมจะเลือกไฟล์ explorer.exe ให้กด Open รูปที่ 17 การกําหนด SMTP สําหรับ WAMP Server โปรแกรมจะให้เลือกการตั้งค่า SMTP และ Email ในขั้นตอนนี้สามารถกดปุ่ม Next > ได้เลย
  • 18. ~ 17 ~ www.programmerthailand.com รูปที่ 18 ขั้นตอนสุดท้ายของการติดตั้ง WAMP Server จะเข้าสู่ขั้นตอนสุดท้ายสามารถกดปุ่ม Finish เพื่อ Run WAMP Server หลังการติดตั้งทันที รูปที่ 19 Icon ของ WAMP Server ที่ทํางานเป็นปกติ (สีเขียว) จะพบ W สีเขียวแสดงว่าระบบทํางาน 100% นั่นคือ Service ของ Apache และ MySQL ทดสอบโดยกด W สีเขียวแล้วเลือก Localhost รูปที่ 20 เมนู WAMP Server หลังจากคลิก W สีเขียว
  • 19. ~ 18 ~ www.programmerthailand.com จะปรากฏหน้า localhost ดังนี้ รูปที่ 21 หน้า localhost หน้าแรก แสดงว่าติดตั้ง WAMP Server เสร็จเรียบร้อยแล้ว เนื่องจาก Yii Framework 2 นั้นมีความต้องการ rewrite_module เพื่อการทํา Pretty URL ดังนั้นควรเปิด การใช้งานส่วนนี้โดยให้กด W->Apache->Apache modules ทําให้แน่ใจว่ามีเครื่องหมายถูกหน้า rewrite_module รูปที่ 22 การกําหนด rewrite_module สําหรับ Apache
  • 20. ~ 19 ~ www.programmerthailand.com ติดตั้ง Composer Composer เป็นโปรแกรมสําหรับการเรียกใช้งานและติดตั้งโปรแกรมต่างๆ ผ่านเครือข่าย อินเทอร์เน็ต โดยสามารถดาวน์โหลดได้ที่เว็บไซต์ https://getcomposer.org/ รูปที่ 23 โลโก้ของ Composer จากนั้นคลิกที่ปุ่ม Download แล้วในที่นี้จะเลือกการติดตั้งสําหรับ Windows โดยคลิกที่ Composer- Setup.exe รูปที่ 24 ลิ้งค์สําหรับดาวน์โหลด Composer และทําการติดตั้ง โดยเปิดไฟล์ Composer-Setup.exe
  • 21. ~ 20 ~ www.programmerthailand.com รูปที่ 25 หน้าแรกของการติดตั้ง Composer จากนั้นกดปุ่ม Next> รูปที่ 26 การเลือก Component สําหรับการติดตั้ง Composer ใช้การตั้งค่าแบบเริ่มต้น และกดปุ่ม Next>
  • 22. ~ 21 ~ www.programmerthailand.com รูปที่ 27 การเลือกที่เก็บ PHP สําหรับ Composer ทําการเลือกที่เก็บ Path ของ PHP ในที่นี้จะอยู่ที่ D:wampbinphpphp5.5.12php.exe จากนั้นกด Next> รูปที่ 28 สรุปข้อมูลก่อนการติดตั้ง จะปรากฏ Ready to Install ให้กดปุ่ม Install
  • 23. ~ 22 ~ www.programmerthailand.com รูปที่ 29 หน้าเมื่อทําการติดตั้ง Composer เรียบร้อยแล้ว จะปรากฏการติดตั้งเสร็จสมบูรณ์ แล้วกดปุ่ม Finish การ Update Composer สําหรับการ Update Composer นั้นมีความจําเป็นเนื่องจากจะมีคําเตือนตอนการเรียกใช้งาน composer หากไม่มีการ update หลังจาก 30 วันไปแล้ว สําหรับวิธีการ update ทําได้ง่ายดายมาก เพียง พิมพ์คําสั่งดังนี้ composer self-update หลังจากพิมพ์คําสั่งแล้วกดปุ่ม Enter จะปรากฏหน้า Command Prompt ดังนี้ รูปที่ 30 การใช้คําสั่ง Update Composer
  • 24. ~ 23 ~ www.programmerthailand.com แม่แบบ(Template) ใน Yii2 สําหรับ Yii2 จะมี Web Application Template อยู่ 2 แบบ นั่นคือ Yii2 Basic ใช้สําหรับสร้าง Web Application ทั่วไป และ Yii2 Advanced ใช้สําหรับสร้าง Web Application ที่มีความซับซ้อน มากกว่า โดยข้อแตกต่างระหว่าง Yii2 Basic และ Yii2 Advanced นั้นคือการแบ่งระบบของ Yii2 Advanced นั้นจะแบ่งส่วน backend และ frontend ออกจากกัน แต่ในขณะที่ Yii2 Basic ไม่ได้แบ่งแยก นั่นเอง
  • 25. ~ 24 ~ www.programmerthailand.com บทที่ 2 การติดตั้ง Yii2 ในการติดตั้ง Yii2 นั้นสามารถทําได้หลายแบบในที่นี้จะแนะนําการติดตั้งผ่าน Composer ซึ่งเป็น มาตรฐานในการติดตั้ง โดยสามารถนําหลักการนี้ไปประยุกต์ใช้ในการติดตั้ง Framework ตัวอื่นๆ ได้ โดยมี ขั้นตอนในการติดตั้งดังนี้ ติดตั้ง Plugin เสริมสําหรับ Composer โดยเปิด Command Prompt จากนั้นไปที่ D:wampwww แล้วพิมพ์คําสั่งดังนี้ composer global require "fxp/composer-asset-plugin:1.0.0- beta4" แล้วกดปุ่ม Enter โปรแกรมจะทําการ Update PlugIn ที่จําเป็นในการสร้าง Web Application ด้วย Yii2 รูปที่ 31 การเพิ่ม PlugIn สําหรับ Composer การติดตัÊง Yii2 Basic Application Template สําหรับ Yii2 Basic Application Template นั้นเป็นการใช้ Yii2 ในการพัฒนา Web Application แบบทั่วไป สําหรับ Web Application ที่ไม่ซับซ้อนมากนัก โดยมีวิธีการติดตั้งดังนี้ เปิด Command Prompt แล้วไปที่ D:wampwww
  • 26. ~ 25 ~ www.programmerthailand.com รูปที่ 32 การใช้ Command Prompt เข้า Root Directory ของ Web Server พิมพ์คําสั่งในการเรียกใช้ composer plugin composer global require "fxp/composer-asset-plugin:1.0.0" พิมพ์คําสั่งในการสร้าง Web Application จาก Basic Template ดังนี้ composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic yii2-basic หมายเหตุ หากต้องการ Yii2 Version ที่เสถียรแล้วไม่ต้องใส่ --stability=dev แล้วกดปุ่ม Enter จะแสดงรายการไฟล์ต่างๆ ที่สร้างจาก Composer รูปที่ 33 การติดตั้ง Yii2 Basic Application Template
  • 27. ~ 26 ~ www.programmerthailand.com ทดสอบ Run หน้าเว็บโดยเข้า URL http://localhost/yii2-basic/web จะปรากฏหน้า Web Application ดังนี้ รูปที่ 34 หน้าหลักของ Web Application การสร้างฐานข้อมูลสําหรับ yii2-basic สําหรับการสร้างฐานข้อมูลนั้นสามารถเข้าบริหารจัดการโดยใช้ phpMyAdmin โดยเข้า URL http://localhost/phpmyadmin หรือ http://127.0.0.1/phpmyadmin ซึ่งจะได้หน้า Web ดังนี้ รูปที่ 35 หน้า PHPMyAdmin
  • 28. ~ 27 ~ www.programmerthailand.com คลิกที่ Database จากนั้น ใส่ชื่อฐานข้อมูลในที่นี้จะใช้ yii2_basic และใช้การเข้ารหัสอักขระเป็น utf8_general_ci ดังนี้ จากนั้นกดปุ่ม Create รูปที่ 36 การสร้างฐานข้อมูล จะปรากฏ Popup สีเขียวว่าสร้างฐานข้อมูลชื่อ yii2_basic เรียบร้อยแล้ว รูปที่ 37 POPUP หลังจากสร้างฐานข้อมูลเสร็จแล้ว แก้ไขการเชื่อมต่อฐานข้อมูล แก้ไขการเชื่อมต่อฐานข้อมูลโดยเปิดไฟล์ config/db.php จากนั้นใส่ชื่อฐานข้อมูลที่ต้องการเชื่อมต่อ พร้อม Username และ Password สําหรับเชื่อมต่อฐานข้อมูล MySQL ในที่นี้คือฐานข้อมูล: yii2_basic Username: root และ Password ไม่มี ดังนี้ รูปที่ 38 การแก้ไขการติดต่อฐานข้อมูล
  • 29. ~ 28 ~ www.programmerthailand.com การใช้ Migration ใน Yii Basic รูปที่ 39 การใช้ Migration ใน Yii Basic การสร้าง Migration สร้าง Migration ชื่อ create_post_table โดยพิมพ์คําสั่งดังนี้ yii migrate/create create_post_table กดปุ่ม Enter จากนั้นพิมพ์ yes เพื่อยืนยันแล้วกดปุ่ม Enter รูปที่ 40 การเรียกใช้งานเพื่อสร้าง Migration จะปรากฏไฟล์ m14001_181424_create_post_table.php ใน Folder migrations เรียบร้อยแล้ว รูปที่ 41 ไฟล์ Migration ที่ถูกสร้างขึ้น จากนั้นทําการปรับแต่งไฟล์เพื่อใช้ในการสร้างตารางต่างๆ ดังนี้
  • 30. ~ 29 ~ www.programmerthailand.com รูปที่ 42 การแก้ไขไฟล์ Migration ที่ได้สร้างขึ้น ทดสอบโดยการเรียก yii migrate จะได้การประมวลผลดังนี้ รูปที่ 43 การสั่งให้ Migration ทํางาน จะเห็นว่ามีตาราง post เกิดขึ้นที่ฐานข้อมูล yii2_basic ดังนี้
  • 31. ~ 30 ~ www.programmerthailand.com รูปที่ 44 รายการตารางหลังจากสั่ง Migration ให้ทํางาน เข้าไปปรับแก้ตาราง โดยเพิ่ม Comment ในแต่ละ Field ดังนี้ รูปที่ 45 การปรับแต่ง Comment ในตาราง post จากนั้นกดปุ่ม Save เพื่อบันทึกการเปลี่ยนแปลง การใช้ Gii Generator สําหรับ Basic Template Gii Generator เป็นเครื่องมือที่มีความสําคัญสําหรับ Yii Framework ซึ่งเป็นเครื่องมือที่ช่วยในการ สร้าง Code ให้สามารถพัฒนา Web Application ได้อย่างรวดเร็วมากยิ่งขึ้นภายใต้ธรรมเนียมของ Yii Framework การเข้าใช้งาน Gii Generator นั้นสามารถเรียกจาก URL web/index.php?r=gii สําหรับการติดตั้ง แบบ Basic โดยจะเห็นหน้าตาของ Web Application ดังนี้ รูปที่ 46 หน้าแรกของ Gii Generator