Ignore:
Timestamp:
2012/02/11 20:12:39 (9 years ago)
Author:
Seasoft
Message:

#1589 (パフォーマンス改善 handle_error の無駄を省く)

  • r21465 でのエンバグを修正

#1635 (PHP 5.4 対応)

  • 定義済み定数の変更を考慮
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/helper/SC_Helper_HandleError.php

    r21479 r21482  
    4242        } 
    4343 
    44         // エラーレベル設定 
    45         // 開発時は E_ALL を推奨 
    46         error_reporting(E_ALL & ~E_NOTICE & ~E_USER_NOTICE & ~E_DEPRECATED); 
     44        // エラーレベル設定 (PHPのログに対する指定であり、以降のエラーハンドリングには影響しない模様) 
     45        // 開発時は -1 (全て) を推奨 
     46        error_reporting(E_ALL & ~E_NOTICE & ~E_USER_NOTICE & ~E_DEPRECATED & ~E_STRICT); 
    4747 
    4848        if (!defined('SAFE') || SAFE !== true || !defined('INSTALL_FUNCTION') || INSTALL_FUNCTION !== true) { 
    49             // E_WARNING, E_USER_WARNING を捕捉した場合にログを残すためのエラーハンドラ 
    50             set_error_handler(array(__CLASS__, 'handle_warning')); 
     49 
     50            // E_USER_ERROR または警告を捕捉した場合のエラーハンドラ 
     51            set_error_handler(array(__CLASS__, 'handle_warning'), E_USER_ERROR | E_WARNING | E_USER_WARNING | E_CORE_WARNING | E_COMPILE_WARNING); 
    5152 
    5253            // 実質的に PHP 5.2 以降かで処理が分かれる 
    5354            if (function_exists('error_get_last')) { 
    54                 // E_USER_ERROR を捕捉した場合にエラー画面を表示させるためのエラーハンドラ 
     55                // E_USER_ERROR 以外のエラーを捕捉した場合の処理用 
    5556                register_shutdown_function(array(__CLASS__, 'handle_error')); 
    5657                // 以降の処理では画面へのエラー表示は行なわない 
     
    8182     */ 
    8283    static function handle_warning($errno, $errstr, $errfile, $errline) { 
    83  
    8484        // error_reporting 設定に含まれていないエラーコードは処理しない 
    8585        if (!(error_reporting() & $errno)) { 
Note: See TracChangeset for help on using the changeset viewer.