Config Class
Config class เป็นคลาสที่รับค่าที่ปรับแต่งเป็นพิเศษโดยอาจจะมาจากไฟล์ปรับแต่งตามปกติ (application/config/config.php) หรือจากไฟล์ปรับแต่งของคุณเองก็ได้
ข้อสังเกตุ: คลาสนี้พร้อมทำงานอัตโนมัติโดยระบบอยู่แล้วดังนั้นไม่ต้องเขียนโหลดมันขึ้นมาใช้เอง
วิเคราะห์ไฟล์ปรับแต่ง
โดยปกติแล้ว CodeIgniter มีไฟล์ปรับแต่งที่สำคัญเพียงแห่งเดียวอยู่ที่ application/config/config.php. ถ้าคุณเปิดไฟล์โดยใช้โปรแกรมจัดการข้อความ(text editor) คุณจะเห็นว่าค่าปรับแต่งต่างๆจะถูกเก็บอยู่ในอาเรย์ที่เรียกว่า $config
คุณสามารถเพิ่มค่าปรับแต่งเพิ่มเติมไปในไฟล์นี้หรือคุณจะเก็บเป็นไฟล์แยกตะหากก็ได้ (สมมุติว่าคุณต้องการค่าปรับแต่งเหล่านี้), โดยสร้างไฟล์ของคุณขึ้นมาแล้วเซฟไว้ในโฟลเดอร์ config
ข้อสังเกตุ: ถ้าคุณสร้างไฟล์ของคุณโดยใช้ต้นแบบเดียวกับไฟล์ปรับแต่งสำคัญของ CodeIgniter โดยเก็บค่าต่างๆไว้ในอาเรย์ที่ชื่อว่า $config แล้ว CodeIgniter จะเลือกไฟล์เหล่านี้อย่างชาญฉลาดเพื่อจัดการกับไฟล์เหล่านี้ ดังนั้นมันจะไม่ขัดแย้งกันเอง แม้แต่ใช้อาเรย์ที่มีชื่อซ้ำกัน (สมมุติว่าดัชนีอาเรย์ ไม่ได้มีชื่อเดียวกับอันหนึ่ง)
โหลดไฟล์ปรับแต่ง
ข้อสังเกตุ: CodeIgniter โหลดไฟล์ปรับแต่งที่สำคัญอย่างอัตโนมัติ (application/config/config.php) ดังนั้นคุณต้องการเพียงโหลดไฟล์ปรับแต่งที่คุณสร้างขึ้นมาเอง
โดยมีสองทางเลือกในการโฟลดไฟล์ปรับแต่ง
- โหลดเอง
ในการโหลดไฟล์ปรับแต่งสักตัวของคุณ คุณจะต้องใช้มันอยู่ภายใต้ฟังก์ชั่นของ controller ที่ต้องการมัน
$this->config->load('filename');โดย filename คือชื่อของไฟล์ปรับแต่งของคุณโดยไม่ต้องใส่ .php
ถ้าคุณต้องการโหลดหลายไฟล์ปรับแต่ง โดยปกติมันจะรวมเข้ากับอาเรย์ค่าปรับแต่งหลัก ชื่อชนกันสามารถเกิดขึ้นได้ อย่างไรก็ตามถ้าคุณมีชื่อดัชนีอาเรย์ที่ซ้ำกันในต่างไฟล์ปรับแต่ง เพื่อหลีกเลี้ยงการชนกันคุณสามารถตั้งค่าที่สองเป็น TRUE และไฟล์ปรับแต่งจะถูกเก็บไว้ในดัชนีอาเรย์ตที่สอดคล้องกับชื่อไฟล์ปรับแต่งนั้น ตัวอย่างเช่น:
// วิธีนี้จะทำให้เก็บไว้ในอาเรย์แบบนี้: $this->config['blog_settings'] = $config
$this->config->load('blog_settings', TRUE);กรุณาดูส่วนที่ชื่อว่า การนำค่าของการปรับแต่งมาใช้งาน ด่านล่างเพื่อเรียนรู้วิธีรับไฟล์ปรับแต่งมาใช้งาน
ส่วนค่าพารามิเตอร์ที่สามจะยอมให้คุณยกเลิกข้อผิดพลาดในกรณีที่ไม่มีไฟล์ปรับแต่งนั้นอยู่
$this->config->load('blog_settings', FALSE, TRUE); - โหลดแบบอัตโนมัติ
ถ้าคุณค้นพบว่าคุณต้องการไฟล์ปรับแต่งสามารถใช้ได้โดยรวม คุณสามารถโหลดมันอย่างอัตโนมัติได้จากระบบ เพื่อการทำสิ่งนี้ให้คุณเปิดไฟล์ autoload.php ซึ่งอยู่ที่ application/config/autoload.php และเพิ่มชื่อไฟล์ปรับแต่งของคุณลงไปที่นี้
// เขียนแค่ชื่อไฟล์โดยไม่ต้องใส่ .php
$autoload['config'] = array('config1','config2');
การนำค่าของการปรับแต่งมาใช้งาน
ในการรับค่าจากไฟล์ปรับแต่งให้คุณใช้ตามฟังก์ชั่นนี้
$this->config->item('item name');
โดย item name คือดัชนีอาเรย์ของ $config ที่คุณต้องการรับมา ยกตัวอย่างเช่น การนำค่าภาษาที่ต้องการออกมาคุณต้องทำแบบนี้
$lang = $this->config->item('language');
โดยฟังก์ชั่นจะคือค่ากลับมาเป็น FALSE (boolean) ถ้าไม่มีการตั้งค่าของชื่อนั้น
ถ้าคุณกำลังใช้ค่าพารามิเตอร์ที่สองของฟังก์ชั่น $this->config->load เพื่อส่งค่าปรับแต่งไปยังดัชนีที่เจาะจง คุณสามารถรับมันได้โดยเขียนชื่อดัชนีในพารามิเตอร์ที่สองของฟังก์ชั่น $this->config->item() ตัวอย่างเช่น
// Loads a config file named blog_settings.php and assigns it to an index named "blog_settings"
$this->config->load('blog_settings', TRUE);
// Retrieve a config item named site_name contained within the blog_settings array
$site_name = $this->config->item('site_name', 'blog_settings');
// An alternate way to specify the same item:
$blog_config = $this->config->item('blog_settings');
$site_name = $blog_config['site_name'];
ตั้งค่าของรายการปรับแต่ง
ถ้าคุณต้องการที่จะตั้งค่ารายการอันใดอันหนึ่งแบบไดนามิคหรือเปลี่ยนเป็นอีกอัน คุณจะต้องใช้ดังนี้
$this->config->set_item('item_name', 'item_value');
โดย item_name คือชื่อดัชนีอาเรย์ $config ที่คุณต้องการเปลี่ยนและ item_value คือค่าที่ต้องการตั้งหรือเปลี่ยน
ฟังก์ชั่นผู้ช่วย
config class มีฟังก์ชั่นตัวช่วยดังนี้
$this->config->site_url();
ฟังก์ชั่นนี้จะรับ URL จากไซค์ของคุณตามด้วยค่า "index" ที่คุณตั้งไว้ในไฟล์ปรับแต่ง
$this->config->system_url();
ฟังก์ชั่นนี้รับ URL ของโฟลเดอร์ระบบ(system folder)