CodeIgniter 常量ENVIRONMENT設置要注意的地方

http://bbs.phpchina.com/thread-274514-1-1.htmlphp

 

index.php ,這是CodeIgniter的入口文件,作開發是,都會設置一下
define('ENVIRONMENT', 'development');
用來區分線上和線下環境,可是在這裏html

 

if (defined('ENVIRONMENT'))
{
    switch (ENVIRONMENT)
    {
        case 'development':
            error_reporting(E_ALL);
        break;
 
        case 'testing':
        case 'production':
            error_reporting(0);
        break;
 
        default:
            exit('The application environment is not set correctly.');
    }
}

  CodeIgniter會判斷一下,若是是production,它會將error_reporting設置爲0,這會致使全部的錯誤都不記錄php_error.log,可是error.log是咱們發現bug和解決問題的重要依據。
因此,根據咱們本身的經驗,建議CodeIgniter用戶將error_reporting(0),這段代碼刪掉,並將php.ini的
error_reporting=E_ALL&~E_NOTICE
display_errors = Off
若是你不能操做ini,那麼就app

if (defined('ENVIRONMENT'))
{
    switch (ENVIRONMENT)
    {
        case 'development':
            error_reporting(E_ALL);
        break;
 
        case 'testing':
        case 'production':
            error_reporting(E_ALL ^ E_NOTICE);
            ini_set('display_errors','0');
        break;
 
        default:
            exit('The application environment is not set correctly.');
    }
}

這樣你的程序錯誤就不會暴漏給用戶,而且會記錄在php_error.log中,可是即便這樣,依然會有一些錯誤會暴漏出來,這就涉及到CodeIgniter另外的坑。

原文連接
h5b.net/codeigniter-php_error-logcodeigniter

相關文章
相關標籤/搜索