รับมือกับข้อผิดพลาด
CodeIgniter ยอมให้คุณสร้างรายงานข้อผิดพลาดสำหรับแอพพลิเคชั่นของคุณเองโดยใช้ฟังก์ชันที่อธิบายด้านล่าง อีกนิด, มันยังมีคลาสเก็บข้อผิดพลาด (error logging class) ซึ่งอนุญาตให้ข้อความผิดพลาดหรือบกพร่องถูกเก็บบันทึกเป็นไฟล์ข้อความได้ (text files)
ข้อสังเกตุ: โดยทั่วไปแล้ว CodeIgniter จะแสดงข้อผิดพลาดทั้งหมดของ PHP คุณสามารถเปลี่ยนพฤติกรรมนี้ได้เมื่อคุณพัฒนาระบบเสร็จแล้ว คุณจะเจอฟังก์ชัน error_reporting() อยู่ในส่วนบนสุดของไฟล์หลัก index.php การปิดการรายงานจะไม่กระทบต่อการเก็บข้อผิดพลาดลงไปยังไฟล์
ซึ่งแตกต่างจากระบบส่วนใหญ่ของ CodeIgniter, ฟังก์ชันข้อผิดพลาดเป็นสิ่งง่ายในการดำเนินการซึ่งสามารถใช้ได้ทั่วทั้งแอพพลิเคชั่น โดยแบบนี้จะอนุญาตให้ใช้ข้อความผิดพลาดโดยไม่ต้องกังวลเกี่ยวกับขอบเขตของฟังก์ชันหรือคลาส
โดยฟังก์ชันต่างๆต่อไปนี้จะช่วยให้คุณสร้างข้อความข้อผิดพลาด
show_error('message' [, int $status_code= 500 ] )
ฟังก์ชันนี้จะแสดงข้อความผิดพลาด โดยใช้แม่แบบข้อผิดพลาดในไฟล์นี้
application/errors/error_general.php
$status_code ซึ่งเป็นพารามิเตอร์ซึ่งเป็นทางเลือกเป็นตัวกำหนดว่าสถานะ HTTP โค้ดอะไรที่จะถูกส่งไปพร้อมกับข้อผิดพลาด
show_404('page')
ฟังก์ชันนี้จะแสดงข้อความผิดพลาด 404 โดยใช้แม่แบบข้อผิดพลาดในไฟล์นี้
application/errors/error_404.php
ฟังก์ชันจะคาดหวัง string ที่จะถูกส่งต่อไปเพื่อเป็นเส้นทางของไฟล์เมื่อหน้าที่ต้องการไม่ถูกพบ สังเกตุว่า CodeIgniter จะโชว์ข้อความ 404 อย่างอัตโนมัติถ้าตัวควบคุม(controller) ไม่ถูกพบ
log_message('level', 'message')
ฟังก์ชันนี้ยอมให้คุณเขียนข้อความไปยังไฟล์ข้อมูลบันทึก คุณต้องเลือก 1 ใน 3 "ระดับ" ในพารามิเตอร์แรก, โดยเป็นการแยกประเภทของข้อความว่ามันคืออะไร(debug, error, info), ด้วยข้อความของตัวมันที่อยู่ในพารามิเตอร์ที่สอง ตัวอย่างเช่น
if ($some_var == "")
{
log_message('error', 'Some
variable did not contain a value.');
}
else
{
log_message('debug', 'Some
variable was correctly set');
}
log_message('info', 'The purpose of some variable is to provide some
value.');
โดยมีข้อความสามแบบ:
- ข้อความรายงานข้อผิดพลาด. นี้เป็นข้อผิดพลาดที่เกิดขึ้นจริง เช่น ข้อผิดพลาด PHP หรือข้อผิดพลาดของการใช้งาน
- ข้อความรายงานข้อบกพร่อง. ข้อความเหล่านี้จะช่วยเหลือในการหาข้อบกพร่อง เช่น ถ้าคลาสนี้เกิดขึ้น คุณสามารถที่จะเก็บบันทึกข้อมูลนี้เป็นข้อมูลในการหาข้อบกพร่อง
- ข้อความรายงานข้อมูลข่าวสาร. นี้คือข้อความที่มีความสำคัญน้อยที่สุด โดยให้ข้อมูลสำหรับบางการทำงานซึ่ง CodeIgniter ไม่สามารถสร้างข้อความรายงานข้อมูลได้ตามธรรมชาติ ซึ่งคุณอาจจะต้องการในแอพพลิเคชั่นของคุณ
ข้อสังเกตุ: เพื่อการไฟล์เก็บบันทึกจะสามารถถูกเขียนได้ โฟลเดอร์ "logs" จะต้องสามารถเขียนได้ เพิ่มเติมอีกหน่อยคุณจะต้องตั้งค่า "threshold" สำหรับการบันทึกข้อมูล คุณอาจจะต้องการเก็บบันทึกเฉพาะข้อความรายงานข้อผิดพลาดและไม่เอาอีก 2 ชนิดแต่ถ้าคุณตั้งค่าเป็น 0 การบันทึกจะถูกปิดการใช้งาน