ยินดีต้อนรับสู่สังคมผู้ใช้ CodeIgniter

หลังจากที่ห่างหายไปพักใหญ่ CodeIgniter .in.th ก็ได้กลับมาเดินหน้าอีกครั้ง คราวนี้เตรียมความพร้อมมาเต็มที่ ตอนที่กำลังเริ่มทำเว็บก็กำลังคิดอยู่ว่าจะทำเว็บยังไงดี ไม่รู้จะทำเว็บด้วยอะไรดี คิดไปคิดมา เราเป็น CodeIgniter .in.th ทั้งที หากเว็บเราเองทำด้วยเว็บสำเร็จรูปหรือ CMS ทั่วไปคงดูไม่ดีแน่ ก็เลยตัดสินใจ เขียนเว็บเองเลย ยังไงเราก็ถนัดใช้ codeigniter อยู่แล้วนี่นา อย่านี้ต้องโชวฝีมือกันหน่อย ว่าแล้วก็เริ่มเลย

ผมจัดทำเว็บนี้เพื่อต้องการเป็นตัวกลางในการแลกเปลี่ยนความรู้ในการใช้งาน CodeIgniter สำหรับผู้ใช้ที่ต้องการแชร์ประสบการณ์และเทคนิควิธีการเขียนโปรแกรมด้วย CodeIgniter เพื่ออำนวยความสะดวกให้กับผู้ที่ใช้ CodeIgniter ในการศึกษาและพัฒนาการเขียนโปรแกรม

CodeIgniter คืออะไร

CodeIgniter คือ framework ที่ถูกพัฒนาขึ้นด้วย ภาษา PHP สำหรับ CodeIgniter Framework เป็นเครื่องมือสำหรับช่วยพัฒนาเว็บไซต์และเว็บแอปผลิเคชั่น โดยมีโครงสร้างการพัฒนาโปรแกรมอย่างเป็นระบบและรวมคำสั่งต่างๆ ที่จำเป็นต่อการพัฒนาเว็บไซต์ด้วย PHP ใว้ภายใน CodeIgniter พัฒนาโดย Rick Ellis ซึ่งมีลิขสิทธิเป็น Open Source สามารถดาวน์โหลดและใช้ได้ฟรี ถูกพัฒนาขึ้นตั้งแต่ปี 2006 และยังมีการพัฒนามาเรื่อยๆ จนถึงปัจจุบัน

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

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

    โครงสร้างไฟล์ภายในโฟลเดอร์ application ที่ต้องใช้

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

codeigniter Structure chart โครงสร้างการทำงาน

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

  • Models : อธิบายโครงสร้างข้อมูล แบบฉบับของคลาสแบบจำลองจะมีฟังก์ชั่นที่ช่วยให้คุณรับ , ใส่ , ปรับปรุงข้อมูลของคุณในฐานข้อมูล
  • View : คือข้อมูลที่ถูกแสดงให้กับผู้ใช้ View ส่วนใหญ่จะเป็นเว็บเพจ แต่ใน CodeIgniter , view สามารถเป็นเพียงบางส่วนของหน้าได้ เช่น ส่วนหัว ส่วนท้าย มันสามารถจะเป็นหน้า RSS หรือเป็นอย่างอื่นได้ที่เป็น "เพจ"
  • Controller : ถูกใช้เป็น สื่อกลาง ระหว่าง Model , View และแหล่งที่มาอื่นๆที่ต้องการในการทำงาน HTTP request และการสร้างเว็บเพจ
  • ขั้นตอนการทำงาน

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


กระทู้เคลื่อนไหวล่าสุด