volcanus/error
Composer 安装命令:
composer require volcanus/error
包简介
simple error and exception handler
README 文档
README
エラーおよび例外処理用クラスです。
以下の機能をサポートしています。
- エラーハンドラ/例外ハンドラとしての機能を提供します。
- ユーザー定義のcallableなエラーログ関数、エラーメッセージ表示関数、エラー画面遷移関数をエラーハンドラ/例外ハンドラで実行します。
- PHPエラーおよび例外メッセージを統一フォーマットに整形します。ユーザー定義のcallableなメッセージフォーマット関数、スタックトレースフォーマット関数を利用することも可能です。
- エラーレベル毎に、エラーログ/エラーメッセージ表示/エラー画面遷移の可否を設定できます。
以下の機能はサポートしません。
- エラー発生時のメール送信…必要に応じてユーザー定義のエラーログ関数で行なって下さい。
- 実行中の環境へのエラーハンドラ/例外ハンドラの設定および解除…必要に応じて利用者自身で行ってください。
- デフォルトのエラーログ関数、エラー画面遷移関数の提供…エラーメッセージ表示関数のみデフォルト実装しています。
以下は利用手順の一例です。
<?php use Volcanus\Error\ErrorHandler; class HttpException extends Exception {} // 設定オプションを指定してインスタンスを生成する $error = new ErrorHandler([ // HTML出力時のエンコーディング 'output_encoding' => 'UTF-8', // エラーログ関数を実行するエラーレベル 'log_level' => ErrorHandler::LEVEL_ALL, // エラーメッセージ表示関数を実行するエラーレベル 'display_level' => ErrorHandler::LEVEL_ALL, // エラー画面遷移関数を実行するエラーレベル 'forward_level' => ErrorHandler::LEVEL_EXCEPTION | ErrorHandler::LEVEL_ERROR, // デフォルトのエラーメッセージ表示時にHTMLとして出力するかどうか 'display_html' => true, // エラーメッセージ表示関数を出力バッファリングするかどうか 'display_buffering' => true, ]); // ユーザー定義のエラーログ関数を指定する $error->setLogger(function($message, $exception = null) { error_log(sprintf("[%s] %s\n", date('Y-m-d H:i:s'), $message), 3, dirname(__FILE__) . DIRECTORY_SEPARATOR . 'log' . DIRECTORY_SEPARATOR . 'php_error.log'); }); // ユーザー定義のエラー画面遷移関数を指定する $error->setForward(function($message, $exception = null) { $status = '500 Internal Server Error'; if (isset($exception) && $exception instanceof HttpException) { switch ($exception->getCode()) { case 400: $status = '400 Bad Request'; break; case 403: $status = '403 Forbidden'; break; case 404: $status = '404 Not Found'; break; case 405: $status = '405 Method Not Allowed'; break; } } if (!headers_sent()) { header($_SERVER['SERVER_PROTOCOL'] . ' ' . $status); } $body = <<< HTML <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8" /> <title>%s</title> </head> <body> <h1>%s</h1> <h2>システムエラーが発生しました。</h2> <hr /> <p><a href="%s">戻る</a></p> </body> </html> HTML; echo sprintf($body, htmlspecialchars($status, ENT_QUOTES, 'UTF-8'), htmlspecialchars($status, ENT_QUOTES, 'UTF-8'), htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES, 'UTF-8')); exit(); }); // エラーハンドラおよび例外ハンドラとして設定する set_error_handler($error->getErrorHandler()); set_exception_handler($error->getExceptionHandler()); // 例外ハンドラを発動 throw new HttpException('Invalid Parameter', 400);
対応環境
- PHP 8.1以降
volcanus/error 适用场景与选型建议
volcanus/error 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 3.52k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2012 年 06 月 10 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 volcanus/error 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 volcanus/error 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 3.52k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 20
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2012-06-10