ทำเว็บไซต์ด้วย codeigniter การใช้งาน autoload

php-codeigniter-framework
php-codeigniter-framework

ทำเว็บไซต์ด้วย 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');