slm / exception
为Zend Framework 2提供的广泛异常处理
Requires
- php: >=5.3.3.
- zendframework/zend-mvc: ~2.1
This package is not auto-updated.
Last update: 2024-09-14 13:25:14 UTC
README
SlmException是一个Zend Framework 2模块,用于在您的应用程序中获取更多对异常处理的控制。它为异常类提供了各种标记,以便您可以精细控制抛出异常时的渲染视图脚本和HTTP状态码。
此外,还计划了两个功能:异常的默认记录到您定义的记录实例,以及针对每个异常显示自定义消息。
安装
SlmException可以通过composer安装。将slm/exception
依赖项放入您的列表中,并运行composer update
。目前SlmException没有标签,因此您必须依赖dev-master
来使用此模块。此外,在您的应用程序.module.config中启用SlmException
。
用法
SlmException现在专注于单一功能:精细控制异常视图模板渲染和HTTP状态码输出。一个实际用例是您的博客模块,您想获取一个文章实体。然而,当找不到文章时,您可能会抛出Blog\Exception\ArticleNotFound
异常。另一方面,您希望向尝试访问此不存在博客文章的访问者显示“页面未找到”消息。
您需要做的是实现SlmException的一个标记接口,其余的将自动完成。
<?php namespace Blog\Exception; use SlmException\Exception\PageNotFoundInterface; class ArticleNotFoundException extends \Exception implements PageNotFoundInterface {}
抛出此异常,将渲染错误模板error/page-not-found
。根据您的需求进行样式设计。此外,PageNotFoundInterface
与HTTP状态码404
相关联,因此您将在响应中看到已设置404状态码。
现在您可以在程序中以语义方式使用异常来处理异常情况,但仍然能够向用户显示正确的消息。对于PageNotFound
的情况可能很明显,但应用程序也可以有其他HTTP状态码更合适的异常代码流。
未来功能
除了异常视图渲染外,还计划记录和自定义消息。使用记录,所有异常都会自动记录到给定的记录实例。此记录器可以是配置的Logger
对象,Service Manager中的键或与Soflomo\Log
轻松连接。
自定义消息是基于非常具体的异常类的文本。您可能希望在某些特定情况下为用户提供支持。通过包含每个异常类消息的数据库表,您可以在异常发生时向用户显示这些消息。一个示例是用户使用链接重置密码,但链接中的令牌已过期。文本可以显示一个有用的消息,说明令牌无效,并提供请求新密码重置链接的表单的直接链接。
开发
SlmException目前处于开发中。使用风险自担!如果您有任何问题,请随时在http://github.com/juriansluiman/SlmException的规范存储库中提出请求。如果您有任何疑问,您可以通过jurian@juriansluiman.nl与我联系。