ใน CI
ทุกสิ่งอย่าง เรียกว่าเกือบ 100% จะเขียนให้อยู่ในรูป OOP ครับ
Class ใน CI มีหลักใหญ่ๆ ดังนี้
- core class หรือ core library หรือ library ที่จำเป็น ในการ run CI
พวกนี้ เรียกใช้ได้เลยครับ มีการโหลดไว้รอเรียบร้อยแล้ว
- library class
หากไม่นับรวม library class ที่เป็น core class แล้ว พวกนี้ต้องโหลดมาใช้เอง ซึ่งการโหลดมาใช้เองนั้น CI จะสร้าง object ให้เลยครับ
เช่น
$this->library->load('pagination');
CI จะสร้าง object กับ class ที่เราโหลดมา โดยตั้งชื่อ object ให้ คือ
$this->pagination
ดังนั้น จะสามารถเข้าถึง method ของ pagination class ได้ โดยผ่าน object ตัวนี้ครับ
- class แบบ third party
ลักษณะไม่ต่างจาก library class แต่ Developer ส่วนใหญ่จะแยกโดยมองถึงความซับซ้อนของ class นั้นๆครับ ถ้าไม่ซับซ้อนอะไรมาก ก็จัดเป็น library class
ซับซ้อนมาหน่อย ก็จัดเป็น third party
หรือทำให้สะดวกหน่อย เค้าก็จะเขียน library adapter ตัวนึง เพื่อเป็นตัวกลางในการติดต่อกับ third party class ครับ
ซึ่งหากเป็น third party class ก็จะใช้ในลักษณะที่ท่านคุ้นชินได้เลย
require("/path/to/your/class/your_class.php");
[visibility] $x = new Your_class();
- Hooks
hook นั้นจะสามารถเป็นได้ทั้ง function ธรรมดา หรือ Class ก็ได้ การเรียกใช้ จะขึ้นกับ hook point ครับ คือ จุดที่ต้องการให้ class นั้นๆ ทำงานเมื่อถึงเหตุการณ์ที่กำหนด
ในที่นี้ไม่นับรวม
Controller และ Model เพราะท่าน จขกท คงเข้าใจในจุดนี้มาบ้างแล้วนะครับ