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


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) ดังนั้นคุณต้องการเพียงโหลดไฟล์ปรับแต่งที่คุณสร้างขึ้นมาเอง

โดยมีสองทางเลือกในการโฟลดไฟล์ปรับแต่ง

  1. โหลดเอง

    ในการโหลดไฟล์ปรับแต่งสักตัวของคุณ คุณจะต้องใช้มันอยู่ภายใต้ฟังก์ชั่นของ 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);
  2. โหลดแบบอัตโนมัติ

    ถ้าคุณค้นพบว่าคุณต้องการไฟล์ปรับแต่งสามารถใช้ได้โดยรวม คุณสามารถโหลดมันอย่างอัตโนมัติได้จากระบบ เพื่อการทำสิ่งนี้ให้คุณเปิดไฟล์ 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)