คู่มือการใช้งาน CodeIgniter เวอร์ชั่น 1.7.2


Plugins (ส่วนต่อเข้า)

ปลั๊กอินทำหน้าที่ส่วนใหญ่เหมือน ผู้ช่วย มีสิ่งที่แตกต่างอย่างชัดเจนก็คือปลั๊กอินโดยปกติแล้วมีให้ใช้เพียงฟังก์ชั่นเดียว แต่ผู้ช่วยมีกลุ่มของฟังก์ชั่นให้เรียกใช้ ผู้ช่วยถูกพิจารณาเป็นแกนส่วนหนึ่งของระบบ ส่วนปลั๊กอินนั้นตั้งใจจะให้ถูกสร้างและถูกแจกจ่ายจากชุมชนของเรา

ปลั๊กอินต่างๆจะต้องถูกบันทึกลงไปในไดเรคทอรี่ system/plugins หรือคุณสามารถสร้างโฟลเดอร์ที่เรียกว่า plugins ภายในโฟลเดอร์ application และเก็บมันไว้ที่นั้น CodeIgniter จะหาไปที่ไดเรคทอรี่ system/application/plugins ก่อนถ้าไม่มีไดเรคทอรี่นี้อยู่ก็จะไปลองดูในโฟลเดอร์ system/plugins แทน

โหลดปลั๊กอิน

การโหลดปลั๊กอินไฟล์มีวิธีการใช้อย่างง่ายโดยเรียกฟังก์ชั่นตามนี้

$this->load->plugin('name');

โดย name คือชื่อไฟล์ของปลั๊กอินโดยไม่ต้องมีนามสกุล .php หรือคำว่าส่วนของคำว่า "plugin"

ตัวอย่างเช่น สำหรับการโหลดปลั๊กอิน Captcha ซึ่งมีชื่อว่า captcha_pi.php คุณจะต้องเรียกดังนี้

$this->load->plugin('captcha');

ปลั๊กอินสามารถถูกโหลดขึ้นมาใช้จากที่ไหนก็ได้ภายในฟังก์ชั่นของตัวควบคุม (หรือแม้แต่ไฟล์ View ถึงแม้ว่ามันไม่ใช่การปฎิบัติที่ดีนัก), โดยคุณต้องโหลดมันก่อนที่จะใช้งานมัน คุณสามารถโหลดปลั๊กอินของคุณไปในตัวสร้างตัวควบคุมของคุณ (controller constructor)

// ฟั่งก์ชั่น Blog นั้นคือ controller constructor เพราะมีชื่อเดียวกับคลาสใช้ได้ทั้ง PHP 4 และ 5
class Blog extends Controller {
       function Blog(){
           parent::Controller();
           $this->load->plugin('captcha');
       }
}

// หรือบางครั้ง controller constructor สามารถถูกเขียนแบบนี้ก็ได้ใช้ใน PHP 5
class Blog extends Controller {
        function __construct()
           parent::Controller();
           $this->load->plugin('captcha');
       }
}

ทำให้มันสามารถถูกเรียกจากทุกๆฟังก์ชั่นได้อย่างอัตโนมัติ หรือคุณจะโหลดปลั๊กอินเฉพาะฟั่งชั่นที่คุณต้องการก็ได้

โปรดสังเกตุ: ฟังก์ชั่นโหลดปลั๊กอินนั้นไม่คืนค่า ดังนั้นอย่าลองกำหนดมันให้กับตัวแปร ให้ใช้มันอย่างที่แสดงไว้

โหลดหลายปลั๊กอินพร้อมกัน

ถ้าคุณต้องการที่จะโหลดปลั๊กอินมากกว่า 1 อันคุณสามารถใส่เป็นอาเรย์แบบนี้

$this->load->plugin( array('plugin1', 'plugin2', 'plugin3') );

โหลดปลั๊กอินแบบอัตโนมัิติ

ถ้าคุณพบว่าคุณต้องการใช้ปลั๊กอินทำงานได้ทั่วทั้งระบบคุณสามารถบอก CodeIgniter ให้โหลดมันแบบอัตโนมัติเมื่อระบบเปิดดำเนินการ โดยวิธีทำนั้นให้คุณเปิดไฟล์ application/config/autoload.php และเพิ่มปลั๊กอินที่ต้องการโหลดลงไปในอาเรย์แบบนี้

$autoload['plugin'] = array('plugin1', 'plugin2', 'plugin3');

การใช้ปลั๊กอิน

เมื่อคุณโหลดปลั๊กอินเข้าสู่ระบบแล้ว คุณสามารถเรียกมันเหมือนเป็นฟังก์ชั่นมาตรฐานของ PHP ได้เลย ยกตัวอย่างเช่น

<?php
// ไฟล์ปลั๊กอินที่มีชื่อว่า math_pi.php
function plus($x,$y){
    return $x+$y;
}
?>

<?php
// ไฟล์ที่ต้องการเรียกใช้ math โดยในที่นี้เป็น controller มีชื่อว่า examplemath.php
class ExampleMath extends Controller {
    function index(){
        $this->load->plugin('math');
        echo plus(5,3); // คำตอบที่ได้คือ 8
    }
}
?>