CodeIgniter - การจัดการข้อผิดพลาด
หลายครั้งขณะใช้แอปพลิเคชันเราพบข้อผิดพลาด เป็นเรื่องที่น่ารำคาญมากสำหรับผู้ใช้หากข้อผิดพลาดไม่ได้รับการจัดการอย่างเหมาะสม CodeIgniter มีกลไกการจัดการข้อผิดพลาดที่ง่ายดาย
คุณต้องการให้ข้อความแสดงเมื่อแอปพลิเคชันอยู่ในโหมดกำลังพัฒนาแทนที่จะอยู่ในโหมดการใช้งานจริงเนื่องจากข้อความแสดงข้อผิดพลาดสามารถแก้ไขได้อย่างง่ายดายในขั้นตอนการพัฒนา
สภาพแวดล้อมของแอปพลิเคชันของคุณสามารถเปลี่ยนแปลงได้โดยการเปลี่ยนบรรทัดที่ระบุด้านล่างจาก index.phpไฟล์. สิ่งนี้สามารถตั้งค่าเป็นอะไรก็ได้ แต่โดยปกติจะมีสามค่า (การพัฒนาการทดสอบการผลิต) ที่ใช้เพื่อจุดประสงค์นี้
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
สภาพแวดล้อมที่แตกต่างกันจะต้องมีการรายงานข้อผิดพลาดในระดับต่างๆกัน ตามค่าเริ่มต้นโหมดการพัฒนาจะแสดงข้อผิดพลาดและการทดสอบและโหมดสดจะซ่อนไว้ CodeIgniter มีฟังก์ชันสามอย่างดังแสดงด้านล่างเพื่อจัดการข้อผิดพลาด
show_error() ฟังก์ชันแสดงข้อผิดพลาดในรูปแบบ HTML ที่ด้านบนของหน้าจอ
Syntax |
show_error ( $ ข้อความ, $ status_code, $ head = 'พบข้อผิดพลาด' ) |
Parameters |
|
Return Type |
ผสม |
show_404() ฟังก์ชันแสดงข้อผิดพลาดหากคุณพยายามเข้าถึงเพจที่ไม่มีอยู่
Syntax |
show_404 ( $ page = '', $ log_error = TRUE ) |
Parameters |
|
Return Type |
เป็นโมฆะ |
log_message()ฟังก์ชันใช้ในการเขียนข้อความบันทึก สิ่งนี้มีประโยชน์เมื่อคุณต้องการเขียนข้อความที่กำหนดเอง
Syntax |
log_message ( ระดับ $, $ ข้อความ, $ php_error = FALSE ) |
Parameters |
|
Return Type |
เป็นโมฆะ |
สามารถเปิดใช้งานการบันทึกใน application/config/config.phpไฟล์. ด้านล่างนี้เป็นภาพหน้าจอของไฟล์ config.php ซึ่งคุณสามารถตั้งค่า threshold ได้
/*
|--------------------------------------------------------------------------------
| Error Logging Threshold
|--------------------------------------------------------------------------------
| You can enable error logging by setting a threshold over zero. The
| threshold determines what gets logged. Threshold options are:
|
| 0 = Disable logging, Error logging TURNED OFF
| 1 = Error Message (including PHP errors)
| 2 = Debug Message
| 3 = Informational Messages
| 4 = All Messages
|
| You can also pass an array with threshold levels to show individual error types
|
| array(2) = Debug Message, without Error Messages
| For a live site you'll usually only enable Errors (1) to be logged otherwise
| your log files will fill up very fast.
|
*/
$config['log_threshold'] = 0;
คุณสามารถค้นหาข้อความบันทึกใน application/log/. ตรวจสอบให้แน่ใจว่าไดเร็กทอรีนี้สามารถเขียนได้ก่อนที่คุณจะเปิดใช้งานล็อกไฟล์
เทมเพลตต่างๆสำหรับข้อความแสดงข้อผิดพลาดสามารถพบได้ใน application/views/errors/cli หรือ application/views/errors/html.