Codeigniter คืออะไร วันนี้สาธยายเรื่อง Codeigniter หรือ CI

Codeigniter คืออะไร วันนี้สาธยายเรื่อง Codeigniter หรือ CI

php framework คืออะไร อย่าเข้าใจสับสนกับ .net framework

รายละเอียดของ framework ว่า คืออะไร ทำงานอย่างไร และใช้ตอนไหน รวมทั้ง มันจะช่วยงานเขียนเว็บเราได้อย่างไร

ต้องออกตัวก่อนเลยนะครับ ว่าผมไม่ใช่คนที่เรียนมาทางด้านคอมพิวเตอร์ ดังนั้น ทั้งหมดอาจจะไม่ถูกเลยก็ได้ แต่ผมจะเล่าให้ฟังจากประสบการณ์ของผมเอง

framework คืออะไร

มันคือsource code ที่มีคนเขียนมาให้เรา โดย source code เหล่านั้น ได้รวมระบบพื้นฐานเอาไว้ให้เราเรียกใช้งานได้ทันที ยกตัวอย่างเช่น การตรวจสอบ form ที่ user input ข้อมูลเข้ามาในเว็บว่ามีหรือไม่ เราสามารถทำได้ด้วยชุดคำสั่งเดียว ที่ framework นั้นๆเตรียมเอาไว้ให้เรา เราไม่จำเป็นต้องเขียนตัวเช็คมาใช้เอง ทำให้ลดเวลาการทำงานลงไปได้ ซึ่งคนที่ใจดีเขียนแจกฟรีมีมากมาย หรือแบบเสียเงินก็ยังมี แบบที่พัฒนาต่อเนื่องก็เยอะ แบบทำออกมาตัวเดียวเลิกก็มีให้เห็นทั่วไปเช่นกัน จะว่าไปก็แนวคิดคล้าย CMS เลยนะ แต่ไม่เหมือน หัวข้อต่อไปจะเล่าให้ฟังว่ามันต่างกันตรงไหน โดย framework มันเกิดมาเพื่อให้ programmer ไปเขียนโค้ดต่อเพื่อเอาไปใช้ในระบบ framewok นั้นๆ โดยจะมี code ที่ complete แล้วหลายชุดให้เราเรียกใช้งานได้ทันที

framework ต่างจาก cms ตรงไหน

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

เมื่อไรเราจะใช้ framework

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

ไม่ใช่ของเล่นของมือใหม่

คนที่จะใช้ framework ต่างๆได้ ควรมีความรู้พื้นฐานในภาษานั้นๆ อย่างน้อยต้องเขียนได้แก้ได้สร้างได้ทุกอย่าง ไม่อย่างนั้นก็จะใช้ไม่ได้เลย เพราะว่า framework ต้องอาศัยโค้ดที่เราเขียนในการทำงานอยู่ดี มันไม่ได้ทำงานเหมือนเอาท่อมาต่อๆกันแล้วจะทำงานได้ และที่มากกว่านั้นก็คือ framework ทุกตัว มีรูปแบบการเขียนเพื่อเรียกการใช้งานที่แตกต่างกัน รวมทั้งการทำงานที่ต่างกันด้วย ดังนั้นจึงเป็นหน้าที่ของคนใช้ที่ต้องศึกษา framework แต่ละตัวก่อนว่าเราจะใช้งานมันได้อย่างไร

framework ตอนนี้มีอะไรบ้าง

มีมากมายเลย แต่เอาเท่าที่นิยมในไทย จะมี CakePHP อันนี้รู้สึกว่านิยมสุด รองลงมาก็เป็น Zend Framework(ของ php ทำเอง) CodeIgniter (โค้ดอิกไนเตอร์) Simphony และอื่นๆอีกมากมาย ซึ่งอย่างที่บอก แต่ละตัวมีการทำงาน ระบบพื้นฐาน ที่แตกต่างกันโดยสิ้นเชิง นั่นก็ทำให้การที่เราใช้งานก็ต่างกันไปด้วย และอีกจุดหนึ่งที่เป็นความสำคัญคือ function พื้นฐานของแต่ละ framework ที่มีมาให้ไม่เท่ากัน เช่น CakePHP มี function ส่วน Javascript ให้เรียกใช้ได้ แต่ codeigniter ไม่มี แต่อย่างไรก็ดี การที่ไม่มี function พื้นฐานอะไรให้เรา ไม่ได้หมายความว่าเราต้องทำเว็บโดยไม่มีส่วนนั้น แต่เรายังสามารถใส่ส่วนที่ต้องการ เข้าไปใน framework ได้ด้วยตนเองอยู่ดี แต่ต้องเหนื่อยเพิ่มอีกเล็กน้อย แต่ข้อเสียของการที่มี function พื้นฐานให้เรามากเกินไปก็คือความเปลืองในการใช้ทรัพยากรของ server เพราะว่ามีให้มากก็ใช้เปลืองมาก ควบคู่กันไป

เลือกใช้ framework จากอะไร

ข้อแรกคงต้องมองถึงภาษาก่อนเลย ว่าเราจะใช้ framework ของภาษาอะไร น่าเชื่อได้ว่ามันมีทุกภาษาล่ะครับ ไม่ว่าจะเป็น PHP,JavaScript หรือแม้กระทั่ง HTML เองยังมีเลย (ระบบ template เช่นพวก smarty) 

ข้อต่อมาคงต้องเป็น function พื้นฐานที่ติดมาด้วย ซึ่งมีตารางเปรียบเทียบ framework แต่ละตัวอยู่ ว่าแต่ละตัวมี และขาดอะไรไปบ้าง อย่างที่บอก เอาครบ ก็หนักเครื่อง เวลาทำงาน

ข้อสุดท้ายก็คงเป็นข้อกำหนดการใช้งาน ส่วนนี้เค้าก็ไม่ค่อยบอกกันหรอก ต้องเขียนไปแล้วเจอเอง เช่น บางตัวต้องการ module php พิเศษที่ server ปกติไม่ค่อยมีกัน (จะเกิดกับ zend เป็นส่วนใหญ่)

ตารางเปรียบเทียบ framework แต่ละตัว

ผมเลือกใช้ตัวไหน

ตัวผมเลือกใช้ CodeIgniter ครับ จริงๆก่อนจะเลือกใช้ผมได้ทำการศึกษาจากหลายเว็บ ในหลายมุมมอง ว่าจะเลือกใช้ตัวไหน  แต่ส่วนผม ผมเน้นในด้าน การทำงานพื้นฐานที่ต้องไม่หนักไป, การต่อยอด framework ที่ทำได้ง่าย, การใช้งานที่เข้าใจได้ไม่ยากเกินไป

จำเป็นต้องใช้หรือไม่

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

ยังไงจะลองใช้งานดูก็ได้นะครับ แรกๆจะยุ่งยาก แต่พอใช้งานได้คล่องแล้ว มันจะช่วยงานเราได้มากเลยครับ

ผ่านมาจนถึงวันนี้ผม implement งานด้วย CodeIgniter ไปแล้ว มากกว่า 10 ชิ้นครับ ซึ่งรวมทั้งหน้าเว็บที่ท่านกำลังได้อ่านนี้ด้วย ก็ทำงานเบื้องหลังด้วย CodeIgniter ด้วยเช่นกัน

และสำหรับการใช้งานพื้นฐาน จะมาเล่าให้ฟังกันต่อไปครับ


Create: Modify : 2010-05-23 10:20:07 Read : 15892 URL :