30.9.09

CodeIgniter PHP Framework เครื่องมือช่วยให้งานเสร็จเร็วขึ้น

      คุณเป็นคนหนึ่งใช่ไหม ที่มีพลังมากมายมหาศาลในการเขียนโค๊ด PHP แบบ procedural แบบบ้าพลัง เขียนใหม่ทุกครั้งที่มีโปรเจคใหม่ โค๊ดเก่าๆ ทิ้งไป ก๊อปปี้มาใช้เพียงบางส่วน บางส่วนเอามาวางยาตัวเองอีกตั้งหาก เขียนโค๊ดทีนึงเป็นพันๆบรรทัด เวลากลับมาแก้ไขที แทบอยากจะเขียนใหม่ ถ้าอย่างนั้น คุณกับผมก็หัวอกเดียวกัน   แล้วเราจะทำยังงัยหล่ะทีนี้ ในที่สุดผมก็เจอผู้ช่วย “CodeIgniter” เค้าคือ PHP Framework (โค๊ด)เล็ก เบา ใช้งานง่าย แต่ประสิทธิภาพเกินตัว

CodeIgniter เป็นเครื่องมือที่ทรงประสิทธิภาพ เพื่อนำมาใช้ในการพัฒนาการเขียนเว็บแอปพลิเคชั่นโดย PHP จุดประสงค์หลักของ CodeIgniter Framework นั้นก็คือ ถ้าคุณมีงานที่จะต้องทำเป็นประจำ อย่างเช่น เขียนหน้าเว็บที่รับค่าจาก user โดยจะต้องสร้างฟอร์มขึ้นมา หรือจะต้อวงเขียนโค๊ดเพื่อจัดการตัวแปร Session หรือทำหน้าเว็บเพื่อให้ user ทำการ upload/download ไฟล์บางอย่าง แทนที่เราจะต้องมานั่งเขียนโค๊ดเอง เราก็ใช้ CodeIgniter Framework แทน โดยเจ้าตัว CodeIgniter Framework มันมีเจ้าโค๊ดพวกนี้ และพวก Class ที่รองรับเรื่องพวกนี้อยู่แล้ว จะเห็นได้ว่า แค่เราปรับพฤติกรรมการเขียนโปรแกรมของเรา จากการเขียนโปรแกรมชนิดที่ต้องโปรแกรมเองทั้งหมด มาเป็นการเรียกใช้ Library หรือให้ใช้ class โดยศึกษาจากคู่มือ CodeIgniter เพียงเท่านี้ งานของเราก็จะเสร็จเร็วขึ้น หมดปัญหากับการวางยาตัวเองอีกต่อไป (เวลาเขียนโค๊ดเยอะๆ แล้วมันงงฉิบ)

CodeIgniter Feature

ในขณะที่ผมกำลังเขียนบทความนี้ ตอนนี้ CodeIgniter เค้าได้ออกเวอร์ชั่น 1.7.2 เรียบร้อยแล้ว ซึ่งในส่วนที่เพิ่มเข้ามาได้แก่

  • เข้ากันได้ดีกับ PHP 5.3.0 (ซึ่งโดยทั่วไป เค้ารองรับ PHP ตั้งแต่เวอร์ชั่น 4.3.2 ขึ้นไป )
  • เพิ่ม Class เกี่ยวกับ Shopping Cart เข้ามาด้วย (ถูกใจ คนที่ทำ e-commerce หล่ะทีนี้)
  • ปรับปรุงโดยเพิ่ม ส่วนของการช่วยเหลือในเรื่องการสร้าง form
  • เพิ่มคำสั่ง is_php('version_number') เอาไว้เช็คว่า runอยู่บน PHP เวอร์ชั่นอะไร
  • ปรับปรุงคำสั่ง show_error() ให้สามารถแสดง HTTP status ได้
  • แล้วก็แก้ไข Bug จากเวอร์ชั่นก่อนหน้านี้ (อันนี้เป็นเรื่องธรรมดา)

เพื่อนๆสามารถดาวน์โหลดได้ฟรีจากเว็บ CodeIgniter โดยตรง  image  Current Version

 

เหตุผลที่คุณต้องใช้ CodeIgniter :

* คุณต้องการเฟรมเวิร์คที่เรียนรู้ง่าย
* คุณต้องการประสิทธิภาพที่ยอดเยี่ยม
* คุณต้องการการรองรับกับโฮสพื้นฐานที่ถูกดำเนินการด้วย PHP หลากหลายรุ่นและการปรับแต่งที่ต่างกัน
* คุณต้องการเฟรมเวิร์คที่แทบจะไม่ต้องปรับแต่งค่าพารามิเตอร์ สำหรับการใช้งาน
* คุณต้องการเฟรมเวิร์คที่ไม่ต้องให้คุณใช้ Command Line
* คุณต้องการเฟรมเวิร์คที่ไม่ต้องยึดติดกับกฎการเขียนโค้ด
* คุณไม่สนใจไลบราีรี่ที่มีขนาดใหญ่มากอย่าง PEAR
* คุณไม่ต้องการถูกบังคับให้เรียนภาษาเทมเพลต (แต่เรามี template parser รองรับอยู่ ถ้าคุณต้องการ)
* คุณเหลีกเลี่ยงความสลับซ้อบซ้อน และชอบแก้ปัญหาด้วยวิธีง่ายๆ
* คุณต้องการเอกสารประกอบที่ละเอียดถี่ถ้วน

ข้อมูลจาก www.codeigniter.in.th

การทำงานของ CodeIgniter 

สมมุติว่าเราต้องการหน้าเว็บแอปพลิเคชั่น(สมมุติชื่อไฟล์ index.php) ซึ่งทำงานอะไรบางอย่าง เมื่อเรามีการเรียกใช้ CodeIgniter ในหน้าเว็บนั้น การทำงานจะเริ่มจาก หน้าใส่โค๊ดของเรา

CodeIgniter Work Flow

  1. หน้า index.php เป็นส่วนที่เราทำการออกแบบให้ไปเรียกใช้ CodeIgniter.
  2. Rounting : ตัว Router ทำการตรวจสอบ HTTP request กำหนดว่าควรจะทำอะไรกับมัน นอกจากนี้มันจะคอยตรวจสอบว่าข้อมมูลนี้เคยถูกเรียกใช้แล้วหรือยัง หากว่าเคยถูกเรียกใช้แล้ว มันจะไปดึงในส่วนของ Caching กลับไปให้ User ซึ่งตรงจุดนี้เองที่ทำให้ CodeIgniter Framework ทำงานได้เร็วกว่าการเขียนโค๊ดเอง
  3. Caching : ถ้ามีไฟล์แคชอยู่ ตัวมันจะถูกส่งกลับทันทีไปยังบราวเซอร์ โดยไม่ผ่านการทำงานปกติของระบบ
  4. Security : ก่อนที่จะโหลดตัวควบคุมของแอพพลิเคชั่น (Application Controller) HTTP request และผู้ใช้ใดๆที่ส่งข้อมูลมาจะถูกกรองข้อมูลเพื่อความปลอดภัย
  5. Application Controller : โหลดแบบจำลอง(Model) , ไลบรารี่หลัก(Libraries) , plugins, ผู้ช่วย (Helpers) และทรัพยากรอื่นๆที่จำเป็นในทำงานที่ถูกร้องขอมา
  6. สุดท้าย View ปฎิบัติงานและถูกส่งกลับไปยังบราวเซอร์เพื่อโชว์หน้าจอ ถ้าระบบแคชถูกใช้งาน หน้าจอจะถูกแคชก่อนแล้วจึงค่อยส่งสิ่งที่ร้องขอมาเป็นลำดับถัดไป

การติดตั้ง CodeIgniter Framework

ในส่วนของการติดตั้ง ผมยังไม่ได้ลองแต่ว่าผมได้ค้นหาข้อมูลในอินเตอร์เนตแล้ว เจอบทความเรื่องการติดตั้ง CodeIgniter ของคุณ “กิตติ เหมือนจันทร์แจ่ม” สำนักส่งเสริมและพัฒนาการเกษตรเขตที่ 2 จังหวัดราชบุรี ซึ่งผมเห็นว่าน่าจะละเอียดที่สุดแล้ว ก็เลยจะไม่ขอเขียนอธิบายในส่วนนี้ ให้เพื่อนๆไปอ่านจากนี้ได้เลยครับ ถ้ามีตรงไหนเพิ่มเติมผมจะมาเขียนเพิ่มในบล๊อกนี้แล้วกัน  คลิกดาวน์โหลด การติดตั้ง CodeIgniter

 

คู่มือการใช้งาน Codeigniter

ส่วนใครที่ไม่ค่อยถนัดอ่าน manual ภาษาอังกฤษ ไม่ต้องเป็นกังวลครับ ตอนนี้มีคนได้แปลคู่มือการใช้งาน CodeIgniter ออกมาเป็นภาษาไทยแล้ว ต้องขอขอบคุณ codeigniter.in.th ที่ทำให้เราทำงานได้ง่ายขึ้น เข้าไปอ่านคู่มือกันได้ที่นี่ครับ http://www.codeigniter.in.th/user_guide/index.html  เนื้อหา สารบัญอยู่ตรง tab ตารางเนื้อหาด้านบนครับ

CodeIgniter content ข้อมูลจาก www.codeigniter.in.th

จริงๆยังมีอะไรอีกมากมาย ไม่ว่าจะเป็นการใช้ Codeigniter กับ jQuery หรือกาารใช้ FormIgniter เพื่อ generate form เพื่อมาใช้กับ Codeigniter และยังมีลูกเล่นอื่นๆอีกมากมาย เอาไว้ให้เพื่อนๆไปศึกษาต่อกันเองครับ แต่ที่สำคัญของบทความนี้ ที่อยากจะยกให้เห็นว่า บางครั้งถ้ามันมี tool อยู่แล้ว เราก็ควรเลือกใช้และใช้ให้เป็น การใช้ tool ช่วย ไม่ได้หมายความว่า เราจะทำอะไรไม่เป็น คนที่ไม่ใช้ tool เลย เขียนเองทั้งหมด ก็ไม่ได้หมายความว่าคนนั้นจะเก่งเป็นเทวดา สุดท้ายแล้ว คนที่รู้จักจัดการและแก้ปัญหาต่างหากหล่ะ ที่ผมคิดว่าเค้าเก่งจริง วันนี้ก็ฝากไว้แค่นี้ก่อน สวัสดีครับ

3 ความคิดเห็น:

Anonymous said...

เหมือนกับของ http://www.cakephp.in.th/index.php หรือเปล่าครับ ??

P'Ple on 4:08 pm, October 02, 2009 said...

ทั้ง Cake และ Codeigniter ต่างก็เป็น Framework ด้วยกันทั้งคู่ครับ แล้วแต่คนถนัดครับ

ball6847 on 7:03 pm, December 02, 2009 said...

ผมเคยใช้แต่ CodeIgniter แฮะ สมัยยังไม่เป็น OOP นี่ไปแทบไม่เป็นเลยคับ แต่พอเข้าใจแล้่ว โอ้ว มันยอดมาก ผมไม่เคยลองด้วยตัวเองทุกตัวเหมือนกัน แต่เห็นฝรั่งเค้า benchmark เทียบแล้ว CodeIgniter เร็วกว่า CakePHP นะคับ

Post a Comment

 

เกี่ยวกับฉัน(ไหมเนี้ย)

My photo

สวัสดีครับ ชื่อเปิ้ลนะครับ ถ้ามีอะไรให้ช่วยเหลือได้ ก็จะช่วยครับ
ผมได้สร้างบล๊อกไว้ เพื่อเก็บรวบรวมความรู้ และประสบการณ์ในการทำงานครับ แวะไปเยี่ยมชมกันได้ครับ http://mechacity.blogspot.com และบล๊อก http://faker-programmer.blogspot.com ครับ

รายการบล๊อกอื่นๆ

  • Solved: error: 'TKD2' was not declared in this scope, LIFA_Base compile error - วันนี้ จะมาเล่าถึงปัญหาที่เจอในการเบิร์นโค๊ด LIFA_Base ที่เราใช้ในการทำให้ Arduino ของเราสามารถรับคำสั่งจาก LabVIEW ได้ ปัญหานี้ เริ่มเกิดขึ้นตอนที่ Ard...
  • Type-Fu : Typing practice game online - หากใครที่สนใจ หรือจะต้องทำงานเกี่ยวกับคอมพิวเตอร์ หนึ่งในความจำเป็นก็คือ จะต้องเรียนรู้ที่พิมพ์สัมผัสได้ เพราะการที่พิมพ์สัมผ้สได้ มันได้ประโยชน์หลายๆ อย...

Blog อื่นๆ ที่น่าติดตาม

เหล่าบรรดา Blogger