รู้จักกับ CodeIgniter และ MVC

26/06/2015 10:44 PM คอมพิวเตอร์ 686 views

     ก่อนทำความรู้จักกับ CodeIgniter และ MVC ผมขออธิบายก่อนว่ามันสัมพันธ์กันยังไง
หลายคนอาจจะเคยทำเว็บไซต์โดยเขียนโค๊ด html, php มาก่อน ถ้าถามว่าเริ่มเขียนยังไง
คงต้องตอบว่า สร้าง site สร้างไฟล์ เขียนคำสั่ง html แทรกด้วยคำสั่ง php
ถ้ามีฐานข้อมูลก็ต้องเชื่อมต่อระหว่างเว็บกับฐานข้อมูลแล้ว compile ดูว่าแสดงผลถูกต้องรึป่าว

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

header-html

     ขอเรียกที่กล่าวมาทั้งหมดว่าการทำเว็บไซ์แบบเริ่มต้นแบบฝึกหัดแล้วกันนะครับ
เพราะในหนังสือสอนทำเว็บไซต์ส่วนใหญ่ที่วางขายก็จะเป็นแนวนี้เกือบทั้งหมด
เขียนคำสั่งไว้ในไฟล์เดียวกัน ไม่ว่าจะเป็นส่วนแสดงผลหน้าจอ ส่วนติดต่อกับฐานข้อมูล
หรือคำสั่งพิเศษต่างๆ

     หลังจากที่เราทราบวิธีการเขียนแบบเก่าที่ดูยุ่งยากและลำบากแล้ว มาดูวิธีใหม่
ที่จะช่วยให้เราพัฒนาเว็บไซต์นั่นง่ายขึ้นโดยใช้ framework ซึ่งผู้พัฒนา
ได้เตรียมโครงส้รางพื้นฐานมาให้เราแล้ว ประกิบด้วย template มีโครงสร้างที่เป็นระบบแบบแผนเดียวกัน
ให้แล้วเพียงแค่เราปรับแต่งเพิ่มเติมก็ใช้งานได้เลย ซึ่งมีหลายค่ายให้เลือกใช้
ขึ้นอยู่กับความถนัดของแต่ละคนเช่น CodeIgniter, Yii, Laravel อื่นๆ

CodeIgniter เป็น PHP Framework รูปแบบหนึ่งสำหรับพัฒนาเว็บไซต์มีการทำงานแบบ MVC ครับ
เมื่อเราติดตั้ง CodeIgniter จะเห็น Folder หลักก็คือ Model, Views และ Controllers

codeigniter

MVC เป็นสถาปัตยกรรมซอฟต์แวร์รูปแบบหนึ่งที่การทำงานแยกส่วนกัน
ประกอบก้วย Model-Views-Controllers ทำให้ง่ายต่อการพัฒนาโปรแกรม
ถ้ามีผู้อื่นมารับงานต่อต้องการแก้ไขหรือปรับปรุงก็เข้าใจง่าย
เพราะการพัฒนาโปรแกรมโดย MVC มีแบบแผนไปในทางเดียวกัน

mvccr. click

Model เป็นส่วนที่ทำงานกับฐานข้อมูล เมื่อผู้ใช้ร้องขอข้อมูลเข้ามา Controllers
จะติดต่อกับ Model เพื่อให้เรียค้นหาข้อมูลและส่งกลับไปที่ COntrollers เพื่อแสดงผลใน Views อีกที

Views คือส่วนแสดงผลหน้าเว็บหรือส่วนติดต่อกับผู้ใช้ ประกอบด้วย HTML, CSS, JavaScript

Controllers เป็นส่วนกลางติดต่อระหว่าง Model และ Views ทำหน้าที่ประมวลผล คำนวนและคำสั่งต่างๆในการตัดสินใจ

     เมื่อเราเลือกใช้ MVC ในการพัฒนาเว็บไซต์แล้วแต่ละส่วนของหน้าเว็บจะแยกออกจากกันทำให้ดูเข้าใจง่าย เมื่อต้องการแก้ไขหน้าแสดงผลก็ไปที่ views อย่างเดียว เมื่อต้องการเปลี่ยนชื่อฐานข้อมูลก็ไปแก้ในส่วน Model อย่างเดียว ซึ่งจะต่างกับการเขียนโค๊ดแบบเดิมที่รวมกันอยู่ไฟล์เดียวหรือการ include ไฟล์เข้ามา

, , , , ,