sageit / phalcon-exception-handler
Sage IT 组件用于 Phalcon - 标注路由的解析器
Requires
- php: >=7.0
- ext-phalcon: 4.* || 5.*
Requires (Dev)
README

Phalcon 异常处理器
添加预设的可抛出异常以及内置的处理器和日志记录功能。
目录
关于项目
构建
安装
Git
git clone https://github.com/SageITSolutions/phalcon-exception-handler.git
Composer
composer require sageit/phalcon-exception-handler
使用
此项目包含一个内置的异常处理器,该处理器支持完整的 Phalcon 应用程序和微应用。目的是将日志和展示集成到通用异常中。
这不应该代替 Phalcon\Support\Debug
功能。异常处理器旨在处理已知事件的生产环境中的异常。
全应用
new Phalcon\Exception\Handler(true,'Error');
此操作将实例化一个新的异常处理器,并将其作为全局的异常处理器设置(true
)。'Error'
可以被任何用于显示异常的闪存服务使用的 CSS 类替换。
如果存在 Logger,并且日志级别大于或等于异常中定义的 LOG_LEVEL
,则将根据指定的级别记录事件。这有助于审计失败的认证尝试。
如果存在 Flash,则当抛出异常时将显示闪存警告。不包含在此库中的异常将自动转换为通用的“未知异常”。
如果没有 Flash,则将返回一个简单的 echo,内容为“遇到异常:{错误信息}”。
微应用
在微类中添加以下内容
$this->error(function ($exception) { $handler = new \Phalcon\Exception\Handler(false); $this ->response ->setStatusCode($code) ->setJsonContent($handler->getJSON($exception)) ->send(); die; });
如果存在依赖注入中的 Logger
服务,则全应用的全局日志行为将发生。
自定义异常
您不仅限于提供的异常。任何自定义异常都可以通过扩展 \Phalcon\Exception\Exception
创建。
class MyCustomException extends Phalcon\Exception\Exception { protected const ERROR_MESSAGE = 'I\'ve created a new custom Exceptions #reasons'; protected const ERROR_CODE = 401; protected const LOG_MESSAGE = 'My custom exception was activated'; protected const LOG_LEVEL = 'alert';
LOG_LEVEL
与 \Phalcon\Logger\Logger
使用的级别相对应。
日志级别
- 紧急
- 严重
- 警告
- 错误
- 警告
- 注意
- 信息
- 调试
- 自定义
其他方法
setDisplay
在抛出异常之前,可以更改闪存使用的 CSS 显示类,以便默认异常处理器应用正确的样式。
$handler->setDisplay('Notification');
display
如果没有全局错误捕获,并且需要使用具有自定义类的闪存显示服务,则可以直接调用此方法。
$handler->display($exception,'Notification');
提供的异常可以是任何可抛出的 \Exception。
log
如果需要记录异常而不显示它,可以直接调用此方法。如果没有存在 Logger
服务,则此方法将不执行任何操作。
$handler->log($exception,'Notification');
getJSON
_如微应用中所示,方法 getJSON
返回一个包含异常元素的命名数组。
$handler->getJSON($exception);
结果
[ 'code' => 500, //$this->getCode() 'status' => 'error', 'message' => 'Exception Encountered' //$this->getMessage() ]
convertException
此 静态 方法在几个其他方法中调用,但也可以外部使用,以将通用异常转换为此处理器使用的 \Phalcon\Exception\Exception
。
\Phalcon\Exception\Handler::convertException($exception);
没有返回值,因为此操作作为变量引用完成。
路线图
查看开放问题以获取功能建议(以及已知问题)列表。
贡献
贡献使开源社区成为一个如此美妙的学习、灵感和创造之地。您所做的任何贡献都非常受欢迎。
- 分支项目
- 创建您的功能分支(
git checkout -b feature/AmazingFeature
) - 提交您的更改(
git commit -m '添加一些AmazingFeature'
) - 将更改推送到分支(
git push origin feature/AmazingFeature
) - 发起一个Pull Request
许可证
在MIT许可下分发。有关更多信息,请参阅LICENSE
。
联系
Sage IT Solutions - 邮箱
项目链接:https://github.com/SageITSolutions/phalcon-exception-handler