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

CodeIgnitor: ขั้นตอนการทำงานของแอพพลิเคชั่น

ขั้นตอนการทำงานของแอพพลิเคชั่น สามารถแสดงได้จากรูปภาพ

clip_image001

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

อ้างอิงจาก: http://codeigniter.in.th/user_guide/overview/appflow.html

ทำความรู้จักกับ 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

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

จำลอง Web Server ด้วย XAMPP

xampp-for-windows-00 

XAMPP เป็นโปรแกรมจำลอง Web Server ตัวหนึ่งที่ได้รับความนิยม ซึ่งนำมาใช้ทดสอบการใช้ Script ที่เกี่ยวกับ PHP และ MySQL และที่สำคัญก็คือ ฟรี ครับ

คุณสามารถ Download โปรแกรมนี้ได้จาก http://www.apachefriends.org/ ซึ่งจะก็ต้องเลือกใช้ให้ตรงกับระบบปฏิบัติการ (Operating System: OS) โดยทั่วไปแล้วนิยมใช้ระบบปฏิบัติการ Windows ก็ต้องเลือก XAMPP for Windows

ภายใน XAMPP นี้จะมีการรวมโปรแกรมที่เกี่ยวข้อง (เวอร์ชั่นที่ใช้อาจจะไม่ตรง ก็ขึ้นอยู่กับที่เรา download มา) ดังนี้

  • Apache HTTPD 2.2.9 + Openssl 0.9.8i
  • MySQL 5.0.67
  • PHP 5.2.6
  • PHP 4.4.9
  • phpMyAdmin 2.11.9.2
  • FileZilla FTP Server 0.9.27
  • Mercury Mail Transport System 4.52

ขั้นตอนการติดตั้ง

  1. Double Click ไฟล์ที่เราได้ทำการ download เสร็จเรียบร้อยแล้ว
  2. ให้ทำการเลือกภาษา ในที่นี่เราเลือก English และกด OK
    xammp-01
  3. กด Next >
    xammp-02
  4. ระบุ path ที่เราต้องการจัดเก็บ ซึ่งโดยปกติแล้วจัดเก็บที่ c:\xampp เมื่อระบุเสร็จเรียบร้อยแล้วให้กด Next >
    xammp-03
  5. เลือกติดตั้ง Service ทั้งหมด และกด Install
    xammp-04
  6. เริ่มทำการติดตั้ง รอสักครู่
    xammp-05
  7. ทำการติดตั้งเสร็จเรียบร้อย กด Finish
    xammp-06
  8. ถ้าเราทำการติดตั้งโปรแกรมเกี่ยวกับ Apache เป็นครั้งแรก (ในเครื่อง) จะมีข้อความแจ้งให้เราทราบ กด OK
    xammp-07
  9. แจ้งข้อความเกี่ยวกับการติดตั้ง XAMPP control Panel กด OK
    xammp-08
  10. แจ้งข้อความเกี่ยวกับการแสดงความยินดีในการติดตั้งเสร็จเรียบร้อย และมีการถามเกี่ยวการเริ่มต้นการทำงาน XAMPP Control Panel กด Yes (ต้องการเริ่มต้นทำงาน)
    xammp-09
  11. ทำการเครื่องหมายที่รายการ Svc ใน Modules ทุกตัว เพื่อทำการติดตั้งเพิ่มเติม (โดยเฉพาะ Apache)
     xammp-16
  12. กด Start ทั้ง 3 ตัว คือ Apache MySQL และ FileZilla
    xammp-17
  13. ให้ทำการทดสอบ โดยเข้า Browser แล้วพิมพ์ http://localhost เลือกภาษาที่จะใช้งาน
    xammp-11
  14. หลังจากเลือกภาษาที่เราต้องการจะเข้าสู่การต้อนรับของโปรแกรม XAMPP
     xammp-18
  15. เลือกรายการ Security เพื่อกำหนดความปลอดภัยของฐานข้อมูล และเลือก http://localhost/security/xamppsecurity.php (อยู่ด้านล่าง)
    xammp-19
  16. ในส่วนนี้เป็นส่วนรหัสผ่านให้กับ SuperUser ชื่อว่า root ถ้ายังไม่ได้กำหนดจะมีรายการให้ทำอยู่ 2 รายการ คือ รหัสผ่าน และการยืนยันรหัสผ่านอีกครั้ง แต่ถ้ามีการกำหนดแล้ว และมีการเข้ามาแก้ไขจะมีรายการเลือก 3 รายการ คือ รหัสผ่านของเดิม รหัสผ่านใหม่ และการยืนยันรหัสผ่านใหม่อีกครั้ง หลังจากนั้น กด Password changing
    xammp-20

จากขั้นตอนติดตั้งเป็นเพียงติดตั้งง่ายๆ เท่านั้น แต่ถ้าต้องการความสามารถเสริม จะต้องมีการกำหนดเพิ่มเติม ซึ่งขอไม่อธิบายขั้นตอนเพิ่มเติม เพียงเท่านี้เราก็สามารถทำการทดสอบโปรแกรมเกี่ยวกับ PHP และ MySQL ได้แล้ว

หมายเหตุ: ไฟล์ทั้งหมดจะเก็บไว้ที่โฟลเดอร์ c:\xampp\htdocs\

Technorati Tags: ,