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


Output Class

Output class คือคลาสเล็กๆที่มีหน้าที่หลักเพียงอย่างเดียว คือส่งข้อมูลสุดท้ายไปยังหน้าเว็บที่บราวเซอร์ร้องขอมา และยังรับผิดชอบเรื่องการเก็บหน้าเว็บไซต์เอาไว้ในหน่วยความจำ

Note: คลาสนี้ถูกสร้างขึ้นมาอย่างอัตโนมัติจากระบบดังนั้นคุณไม่ต้องโหลดมันด้วยตนเอง

ภายใต้สภาวะปกติ คุณจะไม่สังเกตุเห็น Output class เนื่องจากมันทำงานตรงไปตรงมาโดยปราศจากการแทรกแซงจากคุณ ตัวอย่างเช่น เมื่อคุณใช้คลาส Loader ในการโหลดหน้าแสดงผล (view) มันจะถูกส่งไปยังคลาส Output class โดยอัตโนมัติ ซึ่งมันจะถูกเรียกโดย CodeIgniter ในจุดสิ้นสุดการทำงานของระบบ และเป็นไปได้ที่คุณจะแทรกผลลัพธ์ถ้าคุณต้องการโดยการใช้สองฟังก์ชันต่อไปนี้

$this->output->set_output();

ยินยอมให้คุณตั้งค่าผลลัพธ์สตริงสุดท้าย ตัวอย่างวิธีใช้

$this->output->set_output($data);

สำคัญ: ถ้าคุณตั้งค่าผลลัพธ์ด้วยตัวเอง มันจะต้องเป็นสิ่งสุดท้ายในฟังก์ชันที่คุณเรียก ตัวอย่างเช่น ถ้าคุณสร้างหน้าในฟังก์ชันหนึ่งของตัวควบคุม (controller) อย่าตั้งค่าผลลัพธ์ (output) จนกว่าจะจบฟังก์ชัน

$this->output->get_output();

ยินยอมให้คุณรับค่าผลลัพธ์ที่จะถูกส่งไปเก็บใน output class ตัวอย่างการใช้งาน

$string = $this->output->get_output();

ข้อสังเกตุ : จะรับข้อมูลจากฟังก์ชันนี้ได้ก็ต่อเมื่อมันมีข้อมูลที่ถูกส่งไปยัง output class โดยหนึ่งในฟังก์ชันของ CodeIgniter อย่างเช่น $this->load->view().

$this->output->set_header();

ยินยอมให้คุณตั้งค่าหัวเซิร์ฟเวอร์เอง (server header) ซึ่ง output class จะส่งค่าเหล่านั้นให้คุณในผลลัพธ์สุดท้ายที่จะถูกแสดง ตัวอย่างเช่น

$this->output->set_header("HTTP/1.0 200 OK");
$this->output->set_header("HTTP/1.1 200 OK");
$this->output->set_header('Last-Modified: '.gmdate('D, d M Y H:i:s', $last_update).' GMT');
$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate");
$this->output->set_header("Cache-Control: post-check=0, pre-check=0");
$this->output->set_header("Pragma: no-cache");

$this->output->set_status_header();

ยินยอมให้คุณตั้งค่าหัวสถานะเซิร์ฟเวอร์ (server status header) ตัวอย่างเช่น

$this->output->set_status_header('401');
// Sets the header as: Unauthorized

สำหรับหัวสถานะเซิร์ฟเวอร์ทั้งหมดดูได้ที่นี้

$this->output->enable_profiler();

ยิมยอมให้คุณ เปิด/ปิด ตัวรวมข้อมูล ซึ่งจะแสดงการผลวัดสมรรถนะและข้อมูลอื่นๆในด้านล่างสุดของหน้า เอาไว้สำหรับตรวจสอบจุดบกพร่องและเพิ่มประสิทธิภาพเป็นจุดประสงค์หลัก

ในการใช้งานตัวรวมข้อมูลให้ใส่ตรงส่วนไหนก็ได้ในฟังก์ชันตัวควบคุม

$this->output->enable_profiler(TRUE);

เมื่อเปิดแล้วรายงานจะถูกสร้างและใส่เข้าไปในใต้สุดของหน้า

ในการปิดตัวรวมข้อมูลคุณจะใช้แบบนี้

$this->output->enable_profiler(FALSE);

$this->output->cache();

ไลบรารี่ Output ตัวนี้ของ CodeIgniter ยังควบคุมการเก็บไว้ในหน่วยความจำ สำหรับข้อมูลเพิ่มเติม ดูได้ที่ เอกสารการเก็บไว้ในหน่วยความจำ