ให้เรตสมาชิก: 2 / 5

ดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

โครงสร้างของ CodeIgniter Framework

CodeIgniter Framework รองรับการเขียนแบบ Model-View-Controller ( MVC ) เป็นการแยกส่วนประมวลผล ออกจากส่วนแสดงผล ทำให้โครงสร้างมีความปลอดภัยมากยิ่งขึ้น และง่ายต่อการพัฒนาโปรแกรม โค้ดที่ได้มีความเป็นระเบียบและง่ายต่อการนำไปแก้ไข CodeIgniter Framework  ยังออกแบบให้สามารถติดต่อกับฐานข้อมูลชนิดต่างๆ ได้ง่ายอีกด้วย เช่น mysql, postgress, sqlserver หรือ Oracle เป็นต้น หากเรียกใช้ฐานข้อมูลถูกต้องตามหลักของ Database library แล้ว ผู้ใช้สามารถเปลี่ยนชนิดของฐานข้อมูลได้ เพียงแค่แก้ค่าคอนฟิกเพียงไม่กี่ที่เท่านั้น ส่วนระบบ url ของระบบ codeigniter สามารถสร้างได้สะอาดและเป็นมิตรกับกลไกการค้นหา (Search-Engine) ทำให้เสามารถนำไปพัฒนาได้ทั้ง เว็บไซต์ และเว็บแอพพลิเคชั่น ไฟล์ภายใน CodeIgniter ประกอบด้วย โครงสร้างหลักๆ คือ application, system, index.php ระบบภายในสามารถแยกโปรเจคออกเป็น หลายๆ application ได้

โครงสร้างภายในโฟล์เดอร์ application มีอะไรบ้าง

  • cache : เป็นส่วนเก็บข้อมูลที่ประมวลผลแล้ว เพื่อรอการเรียกใช้ครั้งต่อไป
  • config : ใช้ตั้งค่าระบบต่างๆ ภายใน application
  • controllers : ส่วนที่ทำหน้าที่ควบคุมการทำงานของระบบ และหมายถึงจะเป็นตัวที่สั่ง view ให้แสดงผลด้วย
  • core :  คือ classes ที่ทาง CodeIgniter เตรียมไว้ให้ใช้งานแล้ว โดยจะเก็บไว้ใน folder /system/libraries
  • helpers : หากคุณต้องการเขียนฟังชั่นใช้เองในระบบสามารถสร้างและเก็บใว้ในที่นี่
  • hooks : ใช้สำหรับสร้างไฟล์ เพื่อเข้าไป เพิ่ม, แก้ใข Class ต่างๆ ตามเราต้องการ
  • language : เป็นที่เก็บไฟล์ภาษาต่างๆ สำหรับผู้ที่ต้องการทำเว็บหลายภาษา
  • libraries : เป็นที่เก็บไฟล์ Class ที่คุณเขียนขึ้นเอง หากต้องการเรียกใช้ Class อื่นๆ ต้องเรียก get_instance ก่อน
  • logs : เป็นที่เก็บไฟล์บันทึกประวัติการทำงานภายใน application
  • models : คล้ายๆ libraries แต่ models จะสามารถเรียกใช้ libraries ที่คุณโหลดเข้ามาในระบบได้เลย
  • third_party : ขอศึกษาตัวนี้ก่อนค่ะ
  • views : เป็นส่วนที่ใช้ในการแสดงผล โค้ดส่วนใหญ่เป็นแบบ HTML แต่นามสกลุไฟล์ต้องเป็น .php เท่านั้น

 

Model-View-Controller MVC

คือโครงสร้างตามหลักการ ระบบจะแยกส่วนประมวลผล ออกจากส่วนแสดงผล แต่ในทางปฎิบัติ คุณสามารถเขียนโค้ด PHP ลงในส่วนแสดงผลได้เช่นกัน

โมเดล (Model) หมายถึง ส่วนของซอฟต์แวร์ที่ใช้ในการแปลการทำงานของระบบ ไปสู่สิ่งที่ระบบซอฟต์แวร์ได้ถูกออกแบบเอาไว้ ตรรกะเนื้อหาใช้เพื่อให้ความหมายแก่ข้อมูลดิบ (ยกตัวอย่างเช่น การคำนวณว่าวันนี้เป็นวันเกิดของผู้ใช้หรือไม่, หรือจำนวนเงินรวม ภาษี และค่าส่งสินค้า ในตะกร้าสินค้า) เมื่อโมเดลมีการเปลี่ยนแปลง จะมีการส่งคำเตือนให้แก่ วิว ที่เกี่ยวข้องเพื่อปรับค่า

วิว (View) แสดงผลค่าในโมเดลในรูปแบบที่เหมาะสมกับผู้ใช้ ในแต่ละโมเดลสามารถมีวิวได้หลายแบบ เพื่อใช้ในจุดประสงค์ที่ต่างกัน

คอนโทรลเลอร์ (Controller) รับข้อมูลจากผู้ใช้เข้ามา แล้วดำเนินการตอบสนองต่อข้อมูลนั้น โดยเรียกใช้ logic ต่างๆจากอ็อบเจกต์ในโมเดล และส่งข้อมูลผลลัพย์นั้นกลับไปยังส่วนแสดงผล เพื่อตอบกลับไปยังผู้ใช้ได้อย่างถูกต้อง

MVC มักจะพบได้ในเว็บแอปพลิเคชันโดย วิว จะเป็น html หรือ XHTML ที่สร้างโดยแอปพลิเคชันนั้น ส่วนคอนโทรลเลอร์รับค่า GET หรือ POST เข้ามา แล้วเลือกติดต่อกับโมเดลในส่วนที่เกี่ยวข้องเพื่อตอบสนอง โมเดลซึ่งมี business rules จะทำการจัดการตามคำร้องขอนั้นๆ

 

ขั้นตอนการทำงาน

  • index.php : เป็นตัวควบคุมส่วนหน้า, สร้างหน้าพื้นฐานที่ต้องการในการรัน CodeIgniter
  • Rounting : ตัว Router ทำการตรวจสอบ HTTP request กำหนดว่าควรจะทำอะไรกับมัน
  • Caching : ถ้ามีไฟล์แคชอยู่ ตัวมันจะถูกส่งกลับทันทีไปยังบราวเซอร์ โดยไม่ผ่านการทำงานปกติของระบบ
  • Security : ก่อนที่จะโหลดตัวควบคุมของแอพพลิเคชั่น (Application Controller) HTTP request และผู้ใช้ใดๆที่ส่งข้อมูลมาจะถูกกรองข้อมูลเพื่อความปลอดภัย
  • Application Controller : โหลดแบบจำลอง(Model) , ไลบรารี่หลัก(Libraries) , plugins, ผู้ช่วย (Helpers) และทรัพยากรอื่นๆที่จำเป็นในทำงานที่ถูกร้องขอมา
  • View : ปฎิบัติงานและถูกส่งกลับไปยังบราวเซอร์เพื่อโชว์หน้าจอ ถ้าระบบแคชถูกใช้งาน หน้าจอจะถูกแคชก่อนแล้วจึงค่อยส่งสิ่งที่ร้องขอมาเป็นลำดับถัดไป

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
วิธีการ Insert , edit ,delete โดยผ่านตัว Model Laravel Framework
โดย makup ส 24 ต.ค. 2020 3:44 pm บอร์ด PHP Knowledge
1
17
ส 24 ต.ค. 2020 3:59 pm โดย makup
ติดปัญหาการค้นหาข้อมูล Listbox ให้เลือกค่าเก่าค้างไว้
โดย makup พฤ 22 ต.ค. 2020 8:05 pm บอร์ด Programming - PHP
7
69
อ 25 ต.ค. 2020 7:28 pm โดย mindphp
อยากทราบว่า ตรงที่แสดงข้อมูล URL จะให้แสดงเฉพาะ id แค่ตัวเลข ต้องทำอย่างไงครับ
โดย makup พฤ 22 ต.ค. 2020 8:05 pm บอร์ด Programming - PHP
3
34
พฤ 22 ต.ค. 2020 8:16 pm โดย mindphp
วิธีการ Upload file ภาพ ขึ้น Server
โดย makup พฤ 22 ต.ค. 2020 5:41 pm บอร์ด PHP Knowledge
1
37
พฤ 22 ต.ค. 2020 5:54 pm โดย makup
ปัญหา phpBB Error ในหน้า admin vsprintf(): Too few arguments
โดย mindphp พ 21 ต.ค. 2020 5:36 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
0
30
พ 21 ต.ค. 2020 5:36 pm โดย mindphp
สอนเขียนวิธี Upload File Laravel ขึ้น Server
โดย makup พ 21 ต.ค. 2020 3:41 pm บอร์ด PHP Knowledge
2
53
พ 21 ต.ค. 2020 5:25 pm โดย makup
สอบถาม การขึ้นบรรทัดใหม่ ด้วย การนับ len และตัดแบบเต็มคำยังไงคะ
โดย bolue อ 20 ต.ค. 2020 7:22 pm บอร์ด Programming - C/C++ & java & Python
2
53
อ 20 ต.ค. 2020 8:15 pm โดย mindphp
วิธีการทำระบบค้นหา ใน Laravel Framework
โดย makup อ 20 ต.ค. 2020 12:57 pm บอร์ด PHP Knowledge
0
51
อ 20 ต.ค. 2020 12:57 pm โดย makup
เจอปัญหา Publishing failed. You are probably offline. ปัญหาใน Wordpress 5.x
โดย mindphp อ 20 ต.ค. 2020 6:03 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
1
35
อ 20 ต.ค. 2020 6:30 am โดย mindphp
แสดงสินค้าที่ขายได้ล่าสุด ด้วย Module Latest Sold Products ใน MooZiiCart
โดย bolue จ 19 ต.ค. 2020 6:53 pm บอร์ด MindPHP News & Feedback
0
109
จ 19 ต.ค. 2020 6:53 pm โดย bolue
ติดปัญหาเรื่อง การทำปุ่ม ค้นหา ที่มีการเชื่อมความสัมพันธ์ Laravel Framework
โดย makup จ 19 ต.ค. 2020 6:23 pm บอร์ด Programming - PHP
3
140
อ 20 ต.ค. 2020 1:32 pm โดย mindphp
วิธีการกำหนด Routing ใน Laravel Framework
โดย makup จ 19 ต.ค. 2020 7:15 am บอร์ด PHP Knowledge
0
139
จ 19 ต.ค. 2020 7:15 am โดย makup
วิธีแสดงพิกัดบนแผนที่ OpenStreetMap ด้วย Laravel Framework
โดย makup อ 18 ต.ค. 2020 6:21 pm บอร์ด PHP Knowledge
0
108
อ 18 ต.ค. 2020 6:21 pm โดย makup
เจอปัญหา ในฐาน Joomla Out of resources when opening file '/tmp/#sql_7059_0.MAD' (Errcode: 24 "Too many open files")
โดย mindphp อ 18 ต.ค. 2020 5:34 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
1
108
อ 18 ต.ค. 2020 5:41 pm โดย mindphp
Re: Mysql เช็คerror ฟิลซ้ำ แสดงข้อความ(PHP)
โดย kimmyth ศ 16 ต.ค. 2020 11:26 pm บอร์ด Programming - PHP
1
107
ส 17 ต.ค. 2020 10:02 am โดย mindphp
Mysql เช็คerror ฟิลซ้ำ แสดงข้อความ
โดย kimmyth ศ 16 ต.ค. 2020 11:22 pm บอร์ด Programming - PHP
0
85
ศ 16 ต.ค. 2020 11:22 pm โดย kimmyth
อยากทราบว่า มีตัวอย่าง OpenstreetMap ในการใช้งานร่วมกับ MySQL , PHP บ้างไหมครับ
โดย makup ศ 16 ต.ค. 2020 7:25 pm บอร์ด Programming - PHP
2
120
ศ 16 ต.ค. 2020 7:48 pm โดย makup
การคำนวณต้นทุนสินค้า แบบ FIFO และ Weighted Average
โดย bolue ศ 16 ต.ค. 2020 6:53 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
0
129
ศ 16 ต.ค. 2020 6:53 pm โดย bolue
วิธีการเชื่อมความสัมพันธ์ข้อมูล one to many บน Laravel Framework
โดย makup ศ 16 ต.ค. 2020 6:40 pm บอร์ด PHP Knowledge
0
153
ศ 16 ต.ค. 2020 6:40 pm โดย makup
Function Validate Laravel Framework
โดย makup ศ 16 ต.ค. 2020 4:22 pm บอร์ด PHP Knowledge
0
144
ศ 16 ต.ค. 2020 4:22 pm โดย makup