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


สร้างคลาสสำหรับส่วนสำคัญของระบบ

ทุกๆครั้งที่ CodeIgniter รันมีคลาสอยู่หลายคลาสถูกสร้างขึ้นแบบอัตโนมัติซึ่งเป็นส่วนสำคัญของระบบ มันเป็นไปได้ที่คุณจะปรับเปลี่ยนแก้ไขระบบหลักหรือขยายระบบหลักเป็นในแบบของคุณเอง

ผู้ใช้ส่วนใหญ่จะไม่ต้องใช้สิ่งนี้แต่มันเป็นทางเลือกที่จะแทนที่หรือเพิ่มเติมความสามารถระบบหลักของ CodeIgniter.

หมายเหตุ:  การยุ่งกับคลาสส่วนระบบสำคัญของระบบมีสิ่งที่เกี่ยวข้องหลายอย่าง ดังนั้นให้คุณแน่ใจว่าคุณกำลังทำอะไรอะอยู่ก่อนทดลองมัน

รายชื่อคลาสของระบบ

รายชื่อต่อไปนี้คือไฟล์ระบบหลักซึ่งถูกใช้งานทุกๆครั้งที่รัน CodeIgniter

แทนที่คลาสหลัก

การใช้คลาสระบบหลักของคุณเองนอกเหนือจากการใช้ของเดิมที่มีอยู่แล้วให้คุณเพียงใส่คลาสของคุณไปในไดเรคทอรี่ application/libraries:

application/libraries/some-class.php

ถ้ายังไม่มีไดเรคทอรี่นี้ให้คุณสร้างมันขึ้นมา

ชื่อไฟล์ใดๆที่มีชื่อเหมือนกับรายการด้านบนจะถูกใช้แทนอันเดิมที่มีอยู่แล้ว

โปรดสังเกตุว่าคลาสของคุณจะต้องใช้คำว่า CI เป็นคำนำหน้า ยกตัวอย่างเช่น ถ้าุไฟล์ของคุณชื่อ Input.php คลาสจะมีชื่อว่า:

class CI_Input {

}

ขยายคลาสหลัก

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

ยกตัวอย่างเช่น, ในการที่จะขยายคลาส Input คุณจะต้องสร้างชื่อไฟล์ชื่อ application/libraries/MY_Input.php, และประกาศคลาสดังนี้:

class MY_Input extends CI_Input {

}

หมายเหตุ: ถ้าคุณต้องการใช้ตัวสร้างคลาสภายในคลาสของคุณ ให้แน่ใจว่าคุณขยายมาจากตัวสร้างคลาสพ่อแม่:

class MY_Input extends CI_Input {

    function My_Input()
    {
        parent::CI_Input();
    }
}

เคล็ดลับ:  ถ้าฟังก์ชั่นไหนในคลาสของคุณมีชื่อเหมือนคลาสพ่อแม่ ฟังก์ชั่นนั้นจะถูกใช้แทนของเดิมของพ่อแม่ (สิ่งนี้เรียกว่า "ลบล้างวิธีการ" [method overriding]). สิ่งนี้ยินยอมให้คุณปรับเปลี่ยนระบบหลักของ CodeIgniter อย่างเป็นชิ้นเป็นอัน

ถ้าคุณทำการขยายคลาสควบคุมหลัก (Controller core class), ดังนั้นให้แน่ใจว่าคุณเรียกคลาสใหม่ของคุณในตัวสร้างคลาสควบคุมแอพพลิเคชั่นของคุณด้วย

class Welcome extends MY_Controller {

    function Welcome()
    {
        parent::MY_Controller();
    }

    function index()
    {
        $this->load->view('welcome_message');
    }
}

ตั้งค่าคำนำหน้าของคุณ

สำหรับการตั้งค่าคำนำหน้าของคลาสรองของคุณ ให้เปิดไฟล์ application/config/config.php และมองหาสิ่งนี้

$config['subclass_prefix'] = 'MY_';

สังเกตุว่าไลบรารี่พื้นฐานของ CodeIgniter มีคำนำหน้าว่า CI_ ดังนั้นอย่าใช้มันเป็นคำนำหน้าของคุณ