ข้อแตกต่างระหว่าง Codeigniter4vsCodeigniter3-และพื้นฐานการใช้งาน

ข้อแตกต่างระหว่าง Codeigniter 4 vs Codeigniter 3 และพื้นฐานการใช้งาน

เกริ่นก่อนว่า Codeigniter เป็น PHP MVC Framework ตัวแรก ๆ ที่เกิดขึ้นและเป็นเฟรมเวิร์คหลักในการพัฒนาเว็บไซต์ ที่ได้รับความนิยมอย่างแพร่หลายไปทั่วโลก

Codeigniter เวอร์ชั่นแรกที่เปิดให้ใช้งาน เกิดขึ้นตั้งแต่ปี 2006 และเวอร์ชั่นที่ได้รับความนิยมอย่างมากคือ เวอร์ชั่น 3 เปิดให้ใช้งานเมื่อปี 2015 หรือเมื่อ 5 ปีที่แล้ว ( ใช้ PHP เวอร์ชั่น 5.6 ) และออกเวอร์ชั่นล่าสุด คือ Codeigniter 4 เพื่อรองรับ PHP 7.2+ ซึ่งมีความแตกต่างอย่างสิ้นเชิงกับเวอร์ชั่นก่อนหน้านี้

ช่วงระยะเวลาระหว่างเวอร์ชั่น 2 กว่าจะออกเวอร์ชั่น 4 บนโลกอินเตอร์มีการเปลี่ยนแปลงเทคโนโลยีหลายอย่าง PHP มีการออกเวอร์ชั่น 7 ที่ใหม่กว่าและเสถียรกว่า ทำให้เกิดเฟรมเวิร์คที่ใหม่กว่าและรองรับ พีเอชพี 7 เกิดขึ้นมาทดแทน CI3 ที่ยังใช้ พีเอพีเวอร์ชั่น 5.6 อยู่ จนในที่สุด CI4 ก็เปิดให้ใช้งานในปี 2018 ซึ่งก็ถือว่าออกมาช้ากว่าเฟรมเวิร์คตัวอื่น ๆ มาก หลังจากเปลี่ยนทีมพัฒนา ( จาก EllisLab เป็น BCIT )

ด้วยโครงสร้างของภาษา PHP เวอร์ชั่น 7 ที่แตกต่างจาก PHP เวอร์ชั่น 5 อยู่พอสมควร ซึ่งอาจจะเป็นปัญหาสำหรับคนที่ต้องการเปลี่ยนจาก CI3 ไปใช้งาน CI4 เราจึงได้สรุป ข้อแตกต่าง การใช้งาน การตั้งค่าพื้นฐาน ระหว่าง 2 เวอร์ชั่น มาให้ดูเพื่อให้เห็นภาพชัดเจน และปรับใช้งานเวอร์ชั่นที่ใหม่กว่าได้ง่ายขึ้น

ข้อแตกต่างระหว่าง CI3 และ CI4

  • เรื่อง PHP Version ที่แตกต่างกัน CI3 ยังคงใช้ PHP 5.x ที่ไม่มีการ Support แล้ว ส่วน CI4 จะต้องเป็น PHP 7.2+ ขึ้นไปเท่านั้น
  • Project Structure โครงสร้างโปรเจค File และ Folder ที่แตกต่างกัน ตามรูปด้านล่าง แต่คนที่ใช้ CI3 มาก่อน ก็คงพอจะเข้าใจได้ไม่ยาก
  • Development Mode ในขั้นตอนการพัฒนา CI3 จะทำงานที่ Root ของโปรเจค ส่วน CI4 จะทำงานที่ Public โฟลเด้อก่อน แล้วค่อยย้ายออกมาในเวอร์ชั่น Production ตัวอย่าง URL ตามรูปด้านล่าง
  • Project Setting การตั้งค่าพื้นฐานของโปรเจคที่แตกต่างกัน
    • Mode ปกติ CI3 จะตั้งค่าโหมด Test / Development / Production ได้ที่ไฟล์ index.php โดยตรงเลย ส่วน CI4 จะตั้งค่าที่ CI_ENVIRONMENT ไฟล์ .env
    • BaseURL ปกติ CI3 ตั้งค่าที่ application/config/config.php ส่วน CI4 จะตั้งค่าที่ app/Config/App.php
    • Writable Folder & File ปกติ CI3 เราจะต้องสร้างโฟลเด้อขึ้นมาเอง ทั้ง upload, cache, temp, sessions แล้วใช้ command chmod เพื่อให้เขียนไฟล์ลงไปได้ แต่ใน CI4 จะมีการจัดเก็บที่เป็นระเบียบมากขึ้น โดยจะเก็บไว้ที่โฟลเด้อ writable ( ตอนติดตั้งโปรเจคครั้งแรก ต้อง chmod 777 โฟลเด้อนี้ก่อน )
  • การ Autoloading โดยปกติใน CI3 จะต้องเขียน autoload เป็นไฟล์ ๆ ไป แต่ใน CI4 จะมีการใช้ namespace เต็มรูปแบบ ตรงนี้เองที่ทำให้การทำงานเร็วขึ้นกว่าเดิม ไม่จำเป็นต้องเขียน Load model, Load libraries ต่าง ๆ แล้ว ลองเปรียบเทียบการใช้งาน ให้เห็นความแตกต่างระหว่าง CI3 และ CI4 ตัวอย่างตามภาพด้านล่าง
  • การใช้งาน Model การ query ข้อมูลใน CI4 จะมีรูปแบบที่ได้มาตรฐานขึ้นกว่าเดิมมาก จะใช้คุณสมบัติของ model ต้นแบบที่สืบทอดมา ( extends model ) มากขึ้น ซึ่งสามารถดู properties ทั้งหมดได้ที่ system\Model.php
    • จากรูปด้านล่าง จะสังเกตุว่า CI4 มี เมธอด มาให้เราใช้งานค่อนข้างครบถ้วน โดยไม่ต้องเขียน เมธอดเพิ่มเข้ามาเลย เพียงแค่ระบุ Properties ให้ตรงตามความต้องการของเราเท่านั้น ก็สามารถเรียกใช้งานเมธอด รับข้อมูลได้เลย
  • การโหลด view ไม่ได้มีอะไรเปลี่ยนแปลงมาก เพียงแต่ CI4 จะมีการเขียนโหลด view ที่สั้นลงกว่าเดิมเท่านั้น
  • การผ่านค่าตัวแปรไปที่ view ยังมีรูปแบบการใช้งานเหมือนเดิม
  • สรุปการเปลี่ยนจาก CI3 มาใช้งาน CI4 เพื่อ Performance ที่ดีกว่า ปลอดภัยกว่า ใช้เวลาในการศึกษาไม่นานครับ ทั้งคนที่เคยใช้ CI3 หรือ ยังไม่เคยใช้มาก่อน สามารถทำความเข้าใจได้ไม่ยาก

กระทู้ใกล้เคียง

สอน codeigniter วิธีย้ายไฟล์จาก host เดิม ไป host ... สอน codeigniter วิธีย้ายไฟล์จาก host เดิม ไปอยู่ host ใหม่ ด้วย codeigniter สอน codeigniter วิธีย้ายไฟล์จาก host เดิม ไปอยู่ host ใหม่ ท่านเคยประส...
Codeigniter 4 วิธีลบ Public ออกจาก URL... ใน Codeigniter เวอร์ชั่น 4 จะมีโฟลเด้อ public โผล่มา เพื่อให้เราใช้งานในเวอร์ชั่น development ( เวอร์ชั่นที่อยู่ในขั้นตอนการพัฒนา ยังไม่ได้เปิดใช...
Codeigniter วิธีใช้ Route กำหนดเส้นทาง และทำ URL ใ... Route ใน Codeigniter Framework ( รวมถึงเฟรมเวิร์คอื่น ๆ ด้วย ) คือ ตัวช่วยในการปรับแต่ง URL หรือ กำหนดเส้นทางการเข้าชมหน้าเว็บไซต์ เพื่อประโยชน์ช...
CRUD คืออะไร รวม codeigniter library ที่จะทำให้ชีว... CRUD คืออะไร รวม codeigniter library ที่จะทำให้ชีวิตง่ายขึ้น CRUD คืออะไร รวม codeigniter library ที่จะทำให้ชีวิตง่ายขึ้น CRUD ย่อมาจากคำ 4 คำคื...

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.