ให้เรตสมาชิก: 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 : ปฎิบัติงานและถูกส่งกลับไปยังบราวเซอร์เพื่อโชว์หน้าจอ ถ้าระบบแคชถูกใช้งาน หน้าจอจะถูกแคชก่อนแล้วจึงค่อยส่งสิ่งที่ร้องขอมาเป็นลำดับถัดไป

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
วิธีแก้ไขปัญหา สำหรับ การนำ Template phpbb 3.3 มาใช้ใน phpbb 3.2
โดย thatsawan อ 31 มี.ค. 2020 7:27 pm บอร์ด phpBB user Guide Knowledge
0
3
อ 31 มี.ค. 2020 7:27 pm โดย thatsawan
B - เว็บเข้าไม่ได้ error www.phpbbthailand.com
โดย thatsawan อ 31 มี.ค. 2020 7:13 pm บอร์ด phpbbthailand.com
0
2
อ 31 มี.ค. 2020 7:13 pm โดย thatsawan
สอบถาม ผมลองใช้ curl ของ API ของ gitlab แล้ว "message":"401 Unauthorized ครับ
โดย jirawoot อ 31 มี.ค. 2020 5:16 pm บอร์ด Programming - C/C++ & java & Python
1
43
อ 31 มี.ค. 2020 5:35 pm โดย jirawoot
การเชื่อมต่อ API ของ GitLab เพื่อดาวน์โหลดไฟล์
โดย tsukasaz อ 31 มี.ค. 2020 12:52 pm บอร์ด PHP Knowledge
0
9
อ 31 มี.ค. 2020 12:52 pm โดย tsukasaz
วิธิการใส่ icon favorite เพื่อแสดงในแต่ละ browser
โดย Ittichai_chupol อ 31 มี.ค. 2020 11:14 am บอร์ด Graphic design
3
61
อ 31 มี.ค. 2020 12:57 pm โดย mindphp
สิ่งที่เกิดขึ้นจริงในการประชุมด้วยเทคโนโลยี Conference Call #Work from home
โดย thatsawan อ 31 มี.ค. 2020 10:39 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
15
อ 31 มี.ค. 2020 10:39 am โดย thatsawan
ช่วงนี้ Work From Home ก็จะลำบากนิดนึงแหละเนอะ #ทาสเเมว
โดย thatsawan จ 30 มี.ค. 2020 2:29 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
14
จ 30 มี.ค. 2020 2:29 pm โดย thatsawan
อยากทราบวิธีสร้างเว็บหน้าเดียวแบบกรอกข้อมูลเสร็จแล้วประมวลผล
โดย phongkhukhan ส 28 มี.ค. 2020 1:00 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
2
200
ส 28 มี.ค. 2020 1:09 am โดย mindphp
แสดงสินค้าที่อยากได้ใน Wishlist ด้วย Module Wishlist
โดย prmindphp ศ 27 มี.ค. 2020 5:26 pm บอร์ด MindPHP News & Feedback
0
58
ศ 27 มี.ค. 2020 5:26 pm โดย prmindphp
ต้องการสร้าง subtype
โดย blackbullx16 ศ 27 มี.ค. 2020 4:15 pm บอร์ด SQL - Database
0
169
ศ 27 มี.ค. 2020 4:15 pm โดย blackbullx16
อยากทราบวิธีการใช้งาน อีเวน cron ว่ามีการใช้งานอย่างไครับ
โดย Ittichai_chupol ศ 27 มี.ค. 2020 11:10 am บอร์ด Programming - PHP
1
87
ส 28 มี.ค. 2020 11:42 am โดย mindphp
อยากทราบวิธีการแก้ไขการแปลงปีวันที่ใน phpbb ผิด เมื่อกรอกวันที่ 29/02
โดย Ittichai_chupol ศ 27 มี.ค. 2020 10:42 am บอร์ด Programming - PHP
3
61
จ 30 มี.ค. 2020 7:01 pm โดย mindphp
อยากทราบวิธีการจะสร้างการทำงานสำหรับการแจ้งเตือนของ Extension ในอีเวน cron
โดย Ittichai_chupol พฤ 26 มี.ค. 2020 10:34 am บอร์ด PHP Knowledge
2
204
พฤ 26 มี.ค. 2020 2:34 pm โดย LEG
แสดงสินค้าขายดีในร้านค้าออนไลน์ด้วย Module Bestseller
โดย prmindphp พ 25 มี.ค. 2020 5:42 pm บอร์ด MindPHP News & Feedback
0
69
พ 25 มี.ค. 2020 5:42 pm โดย prmindphp
อยากทราบวิธีการที่จะสามารถปิดการแสดงของ modules ใน ucp โดยไม่ต้องเข้าไปจัดการในระบบ
โดย Ittichai_chupol พ 25 มี.ค. 2020 1:04 pm บอร์ด Programming - PHP
1
88
พ 25 มี.ค. 2020 1:05 pm โดย Ittichai_chupol
วิธีการสมัครเข้าใช้งาน Skype สำหรับใช้งาน VDO video conference ในมือถือ
โดย numtan5839 พ 25 มี.ค. 2020 11:26 am บอร์ด Microsoft Office Knowledge & line & Etc
1
204
พฤ 26 มี.ค. 2020 2:34 pm โดย LEG
อยากท่องเที่ยวใหว้พระอุดรกับรถเช่าอุดร แนะนำ
โดย udon999 อ 24 มี.ค. 2020 10:49 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
66
อ 24 มี.ค. 2020 10:49 pm โดย udon999
อยากเที่ยวอุดร ลองเช่ารถอุดร ท่องเที่ยวใหว้พระเชิญทางนี้
โดย udon999 อ 24 มี.ค. 2020 9:57 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
45
อ 24 มี.ค. 2020 9:57 pm โดย udon999
แสดงหมวดหมู่สินค้าให้กับร้านค้าออนไลน์ด้วย Module Category
โดย prmindphp อ 24 มี.ค. 2020 5:57 pm บอร์ด MindPHP News & Feedback
0
49
อ 24 มี.ค. 2020 5:57 pm โดย prmindphp
3 การขนส่งสินค้าที่แปลกที่สุดในโลก
โดย ngongsus อ 24 มี.ค. 2020 12:58 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
64
อ 24 มี.ค. 2020 12:58 pm โดย ngongsus