ทำเว็บไซต์ด้วย codeigniter การใช้งาน autoload
ทำเว็บไซต์ด้วย codeigniter การใช้งาน autoload
การทำ autoload ใน codeigniter นั้น หมายถึงการเปิดใช้งาน php class ที่ถูกสร้างขึ้นจากตัว framework เองและรวมไปถึง class ที่ถูกสร้างขึ้นใหม่จากนักพัฒนา การทำ autoload เหมาะสำหรับคลาสที่จำเป็นที่จะต้องเรียกใช้งานอยู่บ่อย ๆ ไม่ควรที่จะทำ autoload กับทุกคลาสที่เราสร้างขึ้น
สำหรับคลาสที่มีการใช้งานไม่บ่อยนัก ความหมายคือ อาจจะมีการใช้งานในบาง controller เท่านั้น ไม่ควรระบุคลาสนั้นลงใน autoload ควรที่จะทำการโหลดและใช้งานเฉพาะส่วนเท่านั้น
การใช้งาน autoload ใน codeigniter
ไฟล์ autoload.php จะถูกเก็บไว้ใน application/config/autoload.php เราสามารถทำ autoload ได้กับทุกรูปแบบคลาสในโครงสร้างของ codeigniter คือ
| 1. Packages | 2. Libraries | 3. Helper files | 4. Custom config files | 5. Language files | 6. Models
1. Packages autoload
การโหลด Packages จะเป็นการโหลดคลาสที่เป็น Third Party เข้ามาทำงานร่วมกับเฟรมเวิร์ค การทำ autoload package มักจะใช้กับ php libraries ที่ทำงานเฉพาะเจาะจงภายในตัวเอง ไม่มีการ extends คุณสมบัติใด ๆ ของ ci
เก็บไฟล์ php class ไว้ที่
application/third_party/
ตัวอย่าง autoload package
$autoload['packages'] = array(APPPATH.'third_party/pdf');
2. Libraries autoload
การโหลด Libraries จะเป็นการโหลดคลาสที่ extends หรือไม่ extends ci ก็ได้ เป็นคลาสที่มีอยู่แล้วใน ci หรือคลาสที่นักพัฒนาสร้างขึ้นมาใช้งานเอง
เก็บไฟล์ php class ไว้ที่
application/libraries/
ตัวอย่าง autoload Libraries
$autoload['libraries'] = array('database','pages');
จากโค๊ดด้านบน database คือ class libraries ของ codeigniter ส่วน pages คือคลาสที่เราสร้างขึ้นมาเองและถูกเก็บไว้ใน application/libraries/pages
3. Helper autoload
การโหลด helper จะเป็นการโหลด helper class ของ ci เองและ helper ที่เราสร้างขึ้นมาหใม่ ตัวคลาสจะถูกเก็บไว้ใน application/helper/
เก็บไฟล์ php class ไว้ที่
application/helper/
ตัวอย่าง autoload helper
$autoload['helper'] = array('url', 'file');
4. Config autoload
โดยปกติแล้วค่าเริ่มต้นของ codeigniter framework จะมี config ให้เราเพียง 1 คลาส เก็บไว้ใน application/config/config.php ไว้สำหรับตั้งค่าต่าง ๆ ของเว็บไซต์ แต่เราสามารถมีได้มากกว่า 1 config และสามารถกำหนดได้ในส่วน autolod
เก็บไฟล์ php class ไว้ที่
application/config/
ตัวอย่าง autoload config
$autoload['config'] = array('config1', 'config2');
5. Language autoload
ในกรณีที่เว็บไซต์เรามีการเก็บข้อมูลเป็นไฟล์ภาษาหรือมีภาษามากกว่า 2 ภาษา เราจำเป็นจะต้องทำ autoload สำหรับภาษานั้น สามารถระบุได้ในส่วน Language ใน codeigniter นั้นจะเก็บไฟล์ภาษาโดยมีกฏคือ ชื่อคลาสจะต้องลงท้ายด้วย _lang ยกตัวอย่างเช่น ภาษาไทย = thailand_lang.php และภาษาอังกฤษ = english_lang.php แต่ตอนกำหนดใน autoload ให้ตัด _lang.php ออก
เก็บไฟล์ php class ไว้ที่
application/language/
ตัวอย่าง autoload language
$autoload['language'] = array('thailand', 'english');
5. Models autoload
การทำ autoload ให้กับ models เหมาะกับ models ที่ใช้งานบ่อย ๆ เท่านั้น ตัวอย่างเช่น เราอาจจะต้อง query ข้อมูลสินค้าขึ้นมาแสดงบ่อย ๆ ในหลาย ๆ controller แทนที่จะต้องใช้การโหลดใน controller ก็ให้เปลี่ยนเป็นการทำเป็น autoload แทน
เก็บไฟล์ php class ไว้ที่
application/models/
ตัวอย่าง autoload language
$autoload['models'] = array('model_product');