Download the PHP package kode/exception without Composer
On this page you can find all versions of the php package kode/exception. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Please rate this library. Is it a good library?
Informations about the package exception
kode/exception
kode 统一异常处理包,支持 FPM / 多进程 / 多线程 / 协程 / 分布式环境。
功能特性
- 统一异常类 - 单一
KodeException类支持所有异常类型 - 统一错误码体系 -
E1xxxHTTP /E2xxx业务 /E3xxx运行时 /E5xxx系统 - 统一响应格式 - 直接返回
{code, msg, type, trace_id, location, chain, ...} - 链路追踪 - 完整调用链路记录,精确定位问题文件和行号
- 多格式报告 - 支持 JSON、HTML、纯文本链路报告导出
- 多环境支持 - FPM、Swoole、Workerman、Fiber 协程
- Monolog 集成 - 完整日志支持,自动分级记录
v3.0.0 重大变更
- 最低 PHP 8.3:全面启用 8.3 特性 ——
enum错误码 / 错误类型、#[\SensitiveParameter]、typed class constants、#[\Override]。 - 枚举驱动错误码:
KodeException内部以ErrorCode/ErrorType枚举驱动;错误码数值采用preg_replace提取(修复 v2 用hexdec把E1001误算为4097的缺陷)。 - CSPRNG 标识生成:trace-id(32 位十六进制)/ span-id(16 位)改用
\Random\Randomizer+Secure引擎,取代 v2 的mt_rand。 - W3C Trace Context:新增
TraceContext(traceparent / tracestate),替代 v2 直接回写请求头,杜绝 CRLF 响应头注入。 - 敏感数据脱敏:
ContextSanitizer在输出前遮蔽 password / token / secret 等字段。 - 处理器责任链:
ExceptionManager::addHandler()按优先级降序分发,新增CallableExceptionHandler;reportable()/dontReport()扩展点生效。 - 统一响应格式增强:响应体新增
span_id,生产模式自动隐藏系统异常详情与绝对路径。 - RFC 9457 支持:新增
ProblemDetailsFormatter(application/problem+json)。 - 致命错误兜底:
register()注册register_shutdown_function捕获致命错误。
安装
快速开始
统一入口(推荐)
使用 KodeException 统一入口进行一站式异常处理、日志记录和链路追踪:
统一响应格式
响应直接以 code 层开始,无需外层包装:
错误码体系
| 范围 | 类型 | 说明 |
|---|---|---|
| E1xxx | HTTP | HTTP 协议相关错误(400-503) |
| E2xxx | 业务 | 业务逻辑错误(参数、验证、不存在、冲突) |
| E3xxx | 运行时 | 多进程/协程/连接池等运行时错误 |
| E5xxx | 系统 | 系统级错误(内存、磁盘等) |
调用链路追踪
基本使用
导出链路报告
纯文本报告示例
HTTP 头
响应自动包含以下 HTTP 头:
X-Trace-Id: 追踪 IDX-Span-Id: 当前 Span ID
环境支持
FPM
Swoole 协程
跨服务调用
协程 / Worker 运行时程序化响应
Swoole、Workerman、Fiber 等不走 PHP 原生 http 输出,需自行写入响应对象。
使用 ExceptionManager::respond() 即可获得 状态吗 + 响应体,且不会触发 echo:
配置
异常位置信息
每个异常都包含精确定位信息:
类型判断方法
异常转换
项目规范
- PHP 版本: >=8.3
- 严格类型:
declare(strict_types=1); - 命名空间:
Kode\Exception - 测试框架: PHPUnit
依赖
psr/log: ^3.0monolog/monolog: ^3.0
License
MIT
All versions of exception with dependencies
PHP Build Version
Package Version
The package kode/exception contains the following files
Loading the files please wait ...