วันพฤหัสบดีที่ 30 กันยายน พ.ศ. 2553

ทำความรู้จักกับ CodeIgniter (CI)

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

ไม่มีความคิดเห็น:

แสดงความคิดเห็น