php実装のエラー処理パッケージクラスインスタンス

2827 ワード

この例ではphp実装のエラー処理パッケージクラスについて説明する.皆さんの参考にしてください.具体的には以下の通りです.
1、MyErrorHandlerを作成する.phpファイル
コードは次のとおりです.

oticeLog.log';
  public function __construct ($message,$filename,$line,$vars) {
    $this-?>message = $message;
    $this->filename = $filename;
    $this->line = $line;
    $this->vars = $vars;
  }
  public static function deal ($errno,$errmsg,$filename,$line,$vars) {
    $self = new self($errno,$errmsg,$filename,$line,$vars);
    switch ($errno) {
      case E_USER_ERROR:
        return $self->dealError();
        break;
      case E_USER_WARNING:
      case E_WARNING:
        return $self->dealWarning();
        break;
      case E_NOTICE:
      case E_USER_NOTICE:
        return $self->dealNotice();
      default:
        return false;
    }
  }
  /**
  *      
  */
  public function dealError() {
    ob_start();
    debug_print_backtrace();
    $backtrace = ob_get_flush();
    $errorMsg = <<filename}
       :{$this->message}
       :{$this->line}
    {$backtrace}
EOF;
    error_log($errorMsg,1,'[email protected]','From:php[error    ]');
    exit(1);
  }
  /**
  *      
  */
  public function dealWarning() {
    $errorMsg = <<filename}
       :{$this->message}
       :{$this->line}
EOF;
    return error_log($errorMsg,1,'[email protected]','From:php[error    ]');
  }
  /**
  *      
  */
  public function dealNotice() {
    $datetime = date('Y-m-d H:i:s');
    $errorMsg = <<filename}
       :{$this->message}
       :{$this->line}
       :{$datetime}
EOF;
    return error_log($errorMsg,3,$this->_noticeLog);
  }
}


2、テストコード

 
 

注意:メールを送信するには、mail関数をローカルに構成する必要があります.前述の「PHP実装windowsでsendmailを構成し、mail()関数でメールを送信する方法」を参照してください.
PHPについてもっと兴味のある読者は、「PHPエラーと异常処理方法の総括」、「php文字列(string)用法の総括」、「PHP配列(Array)操作技巧大全」、「PHP演算と演算子用法の総括」、「PHPネットワークプログラミング技巧の総括」、「PHP基本文法入門教程」、「phpオブジェクト向けプログラミング入門チュートリアル」、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.