มั่วไปเรื่อยกะ CodeIgniter v2.0
เอาล่ะครับ หลังจากลองเล่น CI 2.0 ดู ที่เปลี่ยนแปลงไปมากๆ หน่อยก็น่าจะมี
1. Database
ส่วนนี้มี Drivers เพิ่มมาพอสมควรครับ แต่ว่ายังขาด PDO อยู่ แล้วก็มีเรื่อง DB Force เข้ามา ไว้จัดการพวก Database Table โดยตรง เรื่องนี้จริงๆ แล้วผมแค่อ่านจาก Class แล้วก็ Manual ไม่ได้ลองเข้าไปเทสจริงๆ จังๆ เพราะโดยส่วนตัวแล้ว ผมว่า Zend DB ทำงานได้ดีกว่านี้เยอะอยู่โขทีเดียว
2. Caching
ส่วนนี้ก็มีเพิ่ม Drivers เข้ามาเหมือนกัน โดยสามารถทำ Cache ผ่าน APC กับ Memcached ได้แล้ว แต่ว่ายังทำงานได้ไม่ละเอียดพอ ถ้าไปเทียบกับ Zend Cache ที่ีมีทั้งเรื่อง Tags เรื่อง Two Levels แล้วก็ driver ที่ค่อนข้างครบกว่า เรื่องนี้ผมเองก็คงไม่ได้เทส แค่มองผ่านก็คิดว่า ยังดึงดูดความสนใจได้ไม่มากพอ
3. JavaScript
ตอนนี้มี Class เพิ่มเข้ามาโดยทำการผูกกับ jQuery ซึ่งเขียนให้มองเป็น Drivers ตัวนึง ซึ่งดูจากโครงสร้างโคดที่เขียนไว้ น่าจะเปิดโอกาสให้กับ Developers มาพัฒนา Driver อื่นๆ เข้าไปได้ด้วย โดยผ่านการ extends class Javascript อีกทีนึง แล้วก้ยังมีการ เขียน Method ซึ่งเอาไว้ช่วยทำพวก tablesort, rounded corner อะไรพวกนี้ด้วย (แต่ต้องไป DL plugin มาลงเอง) เท่าที่ดูก็ Basic มาก เรียกว่า เขียนเองดีกว่า
อ่านมาถึงตรงนี้อย่า เพิ่งไปคิดว่า...
งั้นกูไม่อัพเดทจะดีกว่า -"-
OK ถึงมันจะไม่มีอะไรที่น่าสนใจมากนัก เพราะเผอิญเรามีเทพ Zend เป็นตัวช่วยมาเก่าก่อนอยู่แล้ว แต่ต้องขอยืนยันว่า ทำการ Up ไปเถอะครับ เสียเวลาไม่เท่าไหร่ แต่ สิ่งที่ปกติแล้ว จำเป็นมากต่อการอัพเดท ก็คือ Bugs Fix แล้วก็ Security ซึ่งดูจาก Change Log ต้องถือว่า ทำได้ค่อนข้างเยอะ ซึ่งบางตัวผมก็เคยแก้ไปเองแล้ว อย่างเช่นเรื่อง forn_validation ที่มันไม่ translate ตัวแปรที่ สองเวลาใช้ match ตรงนี้ผมก็เอาที่ตัวเองแก้ออก แล้วมันก็ทำงานได้ดีครับ
และที่สำคัญ ถ้าไม่อัพเดทตอนนี้จะไปอัพเดทตอนไหน ถ้ามันออกมาเกิน 2 version แล้วคิดจะมาอัพเดทนี่วุ่นเลยนะครับ ต้องไล่อ่าน Upgrade From Previous Version กันหัวแตก แล้วถ้าเผอิญไปโดน พวก Critical Bugs ซึ่งมีผลกับ Security ทีนี้จะยิ่งวุ่นไปใหญ่ (เออ อันนี้ฝากถึง Zend ด้วยนะครับ ว่าให้ update ตลอด เหมือนกัน)
เอาล่ะ มันก็ไม่ใช่มีแต่ ไอ้ที่ไม่ได้ความซะอย่างเดียว ของที่ดีๆมันก็มี up มาให้เหมือนกันนะ อาทิเช่น
1. สามารถทำ Application แบบ Third Party ได้
อันนี้ถ้าไปลองโหลด version ใหม่มา ให้สังเกตุที่ไฟล์ config/autoload.php จะเห็นว่ามีเพิ่มมานิด
/* | ------------------------------------------------------------------- | Auto-load Packges | ------------------------------------------------------------------- | Prototype: | | $autoload['packages'] = array(APPPATH.'third_party', '/usr/local/shared'); | */ $autoload['packages'] = array(APPPATH.'third_party');
ตรงส่วนนี้เป็น autoload ของ package โดยที่เราสามารถสร้าง package ย่อยลงไปได้ใน application อีกที ให้ลองนึกถึงภาพ เราสามารถสร้าง application ออกมาได้จาก system ได้ package นี่ก็คือต่อมาจาก application อีกทีน่ะแหละ ส่วนนี้ผมลองแล้วก็ค่อนข้างไปทางดีนะ แต่ยังคิดอยู่ว่าจะเอามทำประโยชน์ยังไงได้บ้าง
2. 404 Error สามารถ Custom โดยผ่านทาง Controller อีกทีได้แล้วนะ
ตรงนี้ให้ไปดูในส่วน config/routes.php จะพบเห็น ตัว config ใหม่ที่ไม่เคยมีมาก่อน
$route['404_override'] = '';
ตรงนี้เอาไว้ ใส่ route ของ controller เข้าไปเวลาเจอหน้า 404 ครับ แต่ว่าแปลกอยู่อย่างคือมัน ไม่ยักกะทำงานกับ helper show_404() ด้้วย อันนี้ไว้ว่างๆ จะลองไปไล่ดูให้อีกทีครับ
3. สามารถ ทำงานผ่าน Command line ได้โดยตรงเลย
อันนี้จริงๆ มันก็ทำได้มานานแล้วนะ แต่อันนี้ต้องเรียกว่า Official 555+
คือมันสามารถ config protocol ให้เป็น CLI เพื่อรัน application แบบ Command ได้โดยตรงเลย
Enabled full Command Line Interface compatibility with config['uri_protocol'] = 'CLI';.
4. ที่เหลือ 555+
ที่เหลือก็มี updated ไปหลายอย่างที่ดีขึ้น แต่ว่าเผอิญผมหนีไปใช้ lib ตัวอื่นๆ ก็เลยไม่ได้สนใจเลย อาทิเช่น
3.1 Pagination ทำงานกับการส่งค่าตัวแปร Query ได้แล้ว
3.2 File Uploading สามารถ allow all types แบบใช้ * ได้เองแล้ว ไม่ต้อง Hacked
3.3 FTP มี method download มาให้เลย
3.4 Session สามารถสั่งให้ Expire เมื่อปิด Browser ผ่าน Config ได้แล้ว (ไอ้นี่น่าจะทำตั้งนานแล้ว)
3.5 Image Manipulation ตอนนี้ ซับพอร์ต PNG แล้วนะ (ดีใจแทบน้ำตาไหล กว่าจะได้)
ที่เหลือผมว่ามันยิบๆ ย่อยๆ ถ้าอยากจะดูต่อก็ไปอ่านที่ Change Log ได้เลยครับ โดยส่วนตัวแล้ว ถึงแม้ว่า มันจะไม่ได้มีของเล่นใหม่ๆ มาให้เล่นมากมายนัก แต่ด้วยความที่เป็น PHP Framework ขนาดเล็ก ต้องถือว่า มีความพยายามในการอัพเดท สม่ำเสมอ ไม่ทอดทิ้งผู้ใช้งาน และ ความยืดหยุ่นในการรองรับ Libraries จากภายนอกได้ดีอยู่ จึงไม่น่าจะมีปัญหาอะไร กับการไม่เพิ่มลูกเล่นให้มากมายนัก ในการอัพเดทครั้งนี้ เรียกว่า อยากใช้อะไรก้กามา ปลั๊กเองจะใช้งานได้ตรงกว่า
ส่วนสำคัญอยู่ที่ว่า ตอนนี้เราได้ตัด PHP4 ออกไปแล้ว ตัวโคดก็น่าจะ Clean ขึ้น แล้วก็ ดูดีขึ้นครับ อย่างพวก construct, destruct หรืออะไร ก็จะได้เขียนถูกต้องตามไวยกรณ์ที่ควรจะเป็นมากขึ้น
สุดท้ายแล้วก็ ขอขอบคุณ ทีมงานของ CodeIgniter อย่างใจจริงที่ไม่ทอดทิ้งผู้ใช้งานครับ
แล้วก็ครั้งหน้า ผมมีเรื่องที่อยากจะเขียน (อีกแล้ว) เป็นวิธี จูนนิ่ง ในระดับ Client ซึ่งก็คือการไป จูน Request ของ Ajax นั่นเอง ยังไงรอติดตามกันนะครับ
ยังไงวันนี้ผมก็ขอฝากไว้เท่านี้แล้วกัน ^^

17 comments