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