30 นาทีกับการอัพเดท CodeIgniter v1.7.2 เป็น CodeIgniter v2.0.0
หลังจากที่ CodeIgniter ทำการ update version ใหม่จริงๆจังซะที่กับ v2.0.0 โดยออกมาในวันที่ 28 มกรา ที่ผ่านมา ซึ่งเท่าที่อ่านดูจาก Change Log จะเห็นได้ว่ามีการปรับปรุงขนานใหญ่กันเลยทีเดียว โดยสาระสำคัญๆ น่าจะเป็นในส่วนของ Database Drivers แล้วก็ สามารถสร้าง Config ย่อยออกมาในลักษณะ Third Party ก็หมายความว่าเราจะสามารถทำ Application ย่อยโดยใช้ Core เดียวกัน แต่อาจจะมี Config, helpers, libraries ต่างกันในบางส่วนได้นั่นเอง แล้วก็ยังมีการ Bug Fixes อีกชุดใหญ่ๆ ฉลองตรุษจีนกันไปเลย
โดยในเนื้อหาวิธีใช้งานผมยังไม่ขอ Review นะครับ เพราะบอกตามตรง ไอ้ส่วนที่มัน Update ผมหนีไปใช้ Zend ทำงานแทนหมดแล้ว อาทิเช่น เรื่อง Database, Cache ที่เพิ่ม Driver มา ผมไม่ได้ใช้ของ CI เลย แต่คิดว่า คุณภาพคงจะไม่ต่างจากของ Zend มากนัก
แต่จะมาขอพูดถึงเรื่องวิธีการอัพเดท ดีกว่า ซึ่งผมใช้เวลาราวๆ 30 นาทีในการ upgrade application ของ OSCOOL เอง ซึ่งถึงตอนนี้ก็ยังไม่พบ Error อะไร (ผมอัพเดทจาก 1.7.2)
ซึ่งวิธีการเริ่มต้นของผมก็เริ่มมาจากนี่เลย พวก Core Class ของ CI v2.0.0 นั้นถูกโยกออกไปหมดแล้ว เค้าให้เหตุผลว่า เพื่อให้มันเหมาะสม เป็นสัดเป็นส่วน โดย folder ที่ย้ายมาใส่ไว้จะชื่อว่า core
ทีนี้ App ของผมมีการ Extends Core Class พวกนี้ออกมาหลายส่วนอยู่เหมือนกัน ก็เลยต้องโยกมาไว้ใน core ด้วย
ซึ่งจากเดิมอยู่ที่ application/libraries/ ก็ย้ายมาไว้ใน application/core แทน แล้วก็แก้ไขอีกนิดหน่อย เพราะว่าของใหม่นั้น PHP4 โดนตัดทิ้งออกไปด้วย พวกที่เคยเรียกแบบ
parent::Controller();
ก็เลยต้องแก้เป็น
parent::__construct()
จากนั้น ก็แก้ config อีกนิดหน่อย เพราะ file config ใหม่นั้น มีตัวแปรเพิ่มมาบางส่วน
สุดท้ายก็เอา Folder System ไปทับเลย เท่านี้ก็เป็นอันเรียบร้อยแล้วครับ นี่คือข้อดีของวิธีการเขียน โคดโดยไม่ไปแก้ที่ core class โดยตรง แต่ใช้วิธี extends ออกมาทั้งหมด ทั้งในส่วนcore
libraries
helpers
language

6 comments