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

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
งานระจำวันที่ 18 เมษายน 2562
โดย poumtip พฤ 18 เม.ย. 2019 10:04 am บอร์ด M080 - สุทธาทิพย์ อู่นาค
0
1
พฤ 18 เม.ย. 2019 10:04 am โดย poumtip
งานประจำวันที่ 18 เมษายน 2562
โดย napharat079 พฤ 18 เม.ย. 2019 9:52 am บอร์ด M079 - นภารัตน์ ฐิติกรโกวิท
0
2
พฤ 18 เม.ย. 2019 9:52 am โดย napharat079
งานประจำวันที่ 18 เมษายน 2562
โดย Four พฤ 18 เม.ย. 2019 9:50 am บอร์ด M077 - อิษยา งามสอาด
0
3
พฤ 18 เม.ย. 2019 9:50 am โดย Four
งานประจำวันที่ 18 เมษายน 2562
โดย สริญญา สมสา พฤ 18 เม.ย. 2019 9:47 am บอร์ด MT32 - นางสาวสริญญา สมสา
0
1
พฤ 18 เม.ย. 2019 9:47 am โดย สริญญา สมสา
ผังบัญชี
โดย สริญญา สมสา พ 17 เม.ย. 2019 6:56 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
6
พ 17 เม.ย. 2019 6:56 pm โดย สริญญา สมสา
ความเป็นมาของบัญชี
โดย สริญญา สมสา พ 17 เม.ย. 2019 6:01 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
2
พ 17 เม.ย. 2019 6:01 pm โดย สริญญา สมสา
การปรับปรุงตั๋วเงินรับ
โดย สริญญา สมสา พ 17 เม.ย. 2019 4:33 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
5
พ 17 เม.ย. 2019 4:33 pm โดย สริญญา สมสา
ฟีเจอร์ใหม่!!! Google translate อัปโหลดเอกสารได้แล้ว
โดย napharat079 พ 17 เม.ย. 2019 4:18 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
11
พ 17 เม.ย. 2019 4:18 pm โดย napharat079
วิธีตั้งค่าวันเวลาส่ง Gmail ล่วงหน้าอัตโนมัติ
โดย napharat079 พ 17 เม.ย. 2019 3:10 pm บอร์ด Share Knowledge
0
6
พ 17 เม.ย. 2019 3:10 pm โดย napharat079
การเเก้ไขข้อผิดผลาดทางบัญชี
โดย สริญญา สมสา พ 17 เม.ย. 2019 2:16 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
4
พ 17 เม.ย. 2019 2:16 pm โดย สริญญา สมสา
วิธีตั้งค่าใช้งาน Google Docs ออฟไลน์
โดย napharat079 พ 17 เม.ย. 2019 11:52 am บอร์ด Microsoft Office Knowledge & line & Etc
0
16
พ 17 เม.ย. 2019 11:52 am โดย napharat079
หนี้สูญได้รับคืน
โดย สริญญา สมสา พ 17 เม.ย. 2019 11:35 am บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
6
พ 17 เม.ย. 2019 11:35 am โดย สริญญา สมสา
สรุปหัวข้ออบรม
โดย tsukasaz พ 17 เม.ย. 2019 10:57 am บอร์ด Diageo - Web Ordering (Main)
0
9
พ 17 เม.ย. 2019 10:57 am โดย tsukasaz
งานประจำวันที่ 17 เมษายน 2562
โดย napharat079 พ 17 เม.ย. 2019 9:53 am บอร์ด M079 - นภารัตน์ ฐิติกรโกวิท
3
8
พ 17 เม.ย. 2019 7:09 pm โดย napharat079
งานประจำวันที่ 17 เมษายน 2562
โดย สริญญา สมสา พ 17 เม.ย. 2019 9:44 am บอร์ด MT32 - นางสาวสริญญา สมสา
1
3
พ 17 เม.ย. 2019 7:08 pm โดย สริญญา สมสา
งานประจำวันที่ 17 เมษายน 2562
โดย poumtip พ 17 เม.ย. 2019 9:42 am บอร์ด M080 - สุทธาทิพย์ อู่นาค
2
11
พ 17 เม.ย. 2019 7:10 pm โดย poumtip
งานประจำวันที่ 17 เมษายน 2562
โดย Four พ 17 เม.ย. 2019 9:35 am บอร์ด M077 - อิษยา งามสอาด
1
7
พ 17 เม.ย. 2019 7:13 pm โดย Four
คอนโดสุดล้ำความสวย สงบ พื้นที่ส่วนตัวเพียบ คอนโดสุขุมวิท
โดย Patty Perfume จ 15 เม.ย. 2019 3:40 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
36
จ 15 เม.ย. 2019 3:40 pm โดย Patty Perfume
เอาใจคนทำงานดึก เดินทางสะดวก คอนโดสะพานควาย
โดย Patty Perfume จ 15 เม.ย. 2019 2:44 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
21
จ 15 เม.ย. 2019 2:44 pm โดย Patty Perfume
พี่ๆท่านใด พอจะมีหนังสือสอน PHP เล่มนี้ไหมครับ
โดย toonytoony2004 อ 14 เม.ย. 2019 8:54 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
2
52
อ 14 เม.ย. 2019 1:09 pm โดย toonytoony2004