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

  • $message( ผสม ) - ข้อความแสดงข้อผิดพลาด

  • $status_code( int ) - รหัสสถานะการตอบกลับ HTTP

  • $heading( สตริง ) - ส่วนหัวของหน้าข้อผิดพลาด

Return Type

ผสม
  • show_404() ฟังก์ชันแสดงข้อผิดพลาดหากคุณพยายามเข้าถึงเพจที่ไม่มีอยู่

Syntax

show_404 ( $ page = '', $ log_error = TRUE )

Parameters

  • $page( สตริง ) - สตริง URI

  • $log_error( bool ) - บันทึกข้อผิดพลาดหรือไม่

Return Type

เป็นโมฆะ
  • log_message()ฟังก์ชันใช้ในการเขียนข้อความบันทึก สิ่งนี้มีประโยชน์เมื่อคุณต้องการเขียนข้อความที่กำหนดเอง

Syntax

log_message ( ระดับ $, $ ข้อความ, $ php_error = FALSE )

Parameters

  • $level( สตริง ) - ระดับบันทึก: 'error', 'debug' หรือ 'info'

  • $message( สตริง ) - ข้อความที่จะบันทึก

  • $php_error( bool ) - เรากำลังบันทึกข้อความแสดงข้อผิดพลาด PHP ดั้งเดิมหรือไม่

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.