CodeIgniter (CI) เป็น PHP Framework ที่ใช้ในการพัฒนาเว็บแอพพลิเคชั่น โดยมีคุณสมบัติในด้านการพัฒนาให้รวดเร็วยิ่งขึ้น เมื่อเปรียบเทียบการพัฒนาแบบเดิมๆ ที่เราต้องนั่งเขียนโค้ดเองตั้งแต่เริ่มต้น ซึ่ง CI จะมี library ต่างๆ จัดเตียมไว้ให้เราใช้งานทั่วไปและยังทำให้ลดจำนวนโค้ดที่เราเขียนน้อยลง และมาพร้อมกับ library ที่สมบูรณ์ ซึ่งใช้ทำงานส่วนใหญ่ในการพัฒนาเว็บไซต์ เช่น ติดต่อฐานข้อมูล, ส่งอีเมล์, ตรวจสอบรูปแบบข้อมูล, ดำรงช่วงเวลาการสื่อสาร, จัดการกับรูปภาพ, ทำงานกับข้อมูล XML-RPC ฯลฯ อีกมากมาย อีกทั้งเรายังสามารถขยายการทำงานได้ โดยผ่าน library plugins หรือ helper หรือผ่านการต่อเติม class หรือระบบตะขอ (Hook)
CI สามารถทำงานได้ทั้ง PHP 4 และ PHP 5 ซึ่งแน่นอนว่า CI จะต้องเป็น Open Source (Free) ที่อยู่ภายใต้เงื่อนไข Apache/BSD และทรัพยากรน้อยกว่า Framework ตัวอื่นๆ เนื่องจาก CI ต้องการเพียง library เพียงเล็กน้อยเท่านั้น (หลักๆ) จึงทำให้มีขนาดเล็กและรวดเร็วในการทำงาน
CI ใช้ Model-View-Controller (MVC) ช่วยในการแบ่งแยกการทำงานของระบบออกเป็นส่วนๆ เพื่อง่ายต่อการพัฒนา และยังสร้าง URL ที่สะอาดและเป็นมิตรกับกลไกการค้นหา (Search Engine) เช่น Google, Yahoo ตรงข้ามกับการวิธีการใช้ "query string" กับ URL ซึ่งมีความหมายเหมือนกันกับระบบการเคลื่อนที่ CodeIgniter ใช้วิธีการแบ่งเป็นกลุ่ม เช่น example.com/news/article/345 เป็นต้น
CI ไม่ต้องการกลไก Template ถึงแม้ว่า CodeIgniter จะมาพร้อมกับ Template Parser แบบง่าย ซึ่งเป็นทางเลือกที่สามารถใช้ได้ โดยไม่ได้บังคับให้คุณต้องใช้มัน กลไก Template อย่างง่ายไม่สามารถมีประสิทธิภาพเท่ากับ PHP ตามธรรมชาติ และคุณต้องเรียนรู้ไวยากรณ์ (Syntax) เพื่อใช้กลไก Template ซึ่งปกติแล้วมีขอบเขตการใช้งานที่ง่ายกว่าการเรียนพื้นฐานของ PHP ลองพิจารณาโค้ดต่อไปนี้
<ul>
<?php foreach ($addressbook as $name): ?>
<li><?=$name?></li>
<?php endforeach; ?>
</ul>
เปรียบเทียบสิ่งนี้กับ Pseudo-Code (รหัสเทียม) ซึ่งถูกใช้ในกลไก Template
<ul>
{foreach from=$addressbook item="name"}
<li>{$name}</li>
{/foreach}
</ul>
ใช่แล้วตัวอย่างกลไก Template สะอาดกว่านิดหน่อย แต่มันต้องแลกกับประสิทธิภาพ ซึ่ง Pseudo-Code จะถูกแปลงกลับไปเป็น PHP เพื่อทำงาน ดังนั้นถ้าจุดมุ่งหมายหนึ่งเราคือ มีประสิทธิภาพมากที่สุด เราจึงเลือกที่ไม่บังคับใช้กลไก Template
CI ยังมีสามารถทำเป็นเอกสาร ซึ่งโดยปกติแล้วโปรแกรมเมอร์ที่รักในการเขียนโค้ดมักจะไม่ชอบในเรื่องของการจัดทำเอกสาร CI ก็สามารถจัดการให้เราได้
คุณสมบัติหลักที่มีใน CodeIgniter
- ระบบบนพื้นฐาน Model-View-Controller (MVC)
- รองรับ PHP 4
- แอพพลิเคชั่นเบาสุดขีด
- คุณสมบัติครบถ้วนสำหรับฐานข้อมูลและสนับสนุนหลายแพลตฟอร์ม
- สนับสนุนการใช้ฐานข้อมูลแบบ Active Record
- การตรวจสอบฟอร์มและข้อมูล
- ความปลอดภัยและระบบกลั่นกรอง XSS (Cross Site Scripting)
- การจัดการ Session
- คลาสส่งอีเมล์
สนับสนุนการแนบไฟล์, อีเมล์แบบ HTML/Text,
รองรับหลายโปรโตคอลพร้อมกัน (ส่งเมล์, SMTP
และ Mail)
และอีกมาก
- ไลบรารี่จัดการรูปภาพ (ตัด, ย่อ, หมุน, ฯลฯ). สนับสนุน GD, ImageMagick และ NetPBM
- คลาสอัพโหลดไฟล์ (File Uploading Class)
- FTP Class (คลาส FTP)
- Localization (หรือการทำหลายภาษา)
- Pagination (หมายเลขหน้า)
- Data Encryption (การเ้ข้ารหัสข้อมูล)
- Benchmarking (การทดสอบเพื่อวัดความสามารถในการประมวลผล)
- Full Page Caching (การเก็บหน้าทั้งหน้าอยู่ในแคช)
- Error Logging (การบันทึกข้อผิดพลาด)
- Application Profiling (การรวบรวมรายละเอียดของแอพพลิเคชั่น)
- Scaffolding (การทำโครงยกพื้น)
- Calendaring Class (คลาสปฎิทิน)
- User Agent Class (คลาสตัวแทนผู้ใช้)
- Zip Encoding Class (คลาสเข้ารหัส zip)
- Template Engine (คลาสกลไลแม่แบบ)
- Trackback Class (คลาสระบบติดตามลิงค์กลับ)
- XML-RPC Library (ไลบรารี่ XML-RPC)
- Unit Testing Class (คลาสทดสอบเฉพาะหน่วย)
- URL ที่เป็นมิตรกับเซิร์ชเอนจิ้น
- เส้นทาง URI
ที่ยืดหยุ่น
- สนับสนุนสำหรับ Hooks - (ตะขอ), สอบขยายคลาสและ Plugins
- ไลบรารี่ขนาดใหญ่สำหรับฟังก์ชั่น "ผู้ช่วย"
อ้างอิงจาก: http://codeigniter.in.th/user_guide/index.html