labo86 / exception_with_data
支持数据数组的一个Exception类
这个包的官方仓库似乎已经不存在了,因此该包已经被冻结。
3.0.0
2020-10-08 11:41 UTC
Requires
- php: ^7.4
Requires (Dev)
- phpunit/phpunit: ^8.5
This package is auto-updated.
Last update: 2024-06-24 23:45:01 UTC
README
labo86\exception_with_data
支持数据数组的一个Exception类
用法
use \labo86\exception_with_data\ExceptionWithData; try { throw new ExceptionWithData( "division by zero", [ "dividend" => 100, "divisor" => 0 ]); } catch ( ExceptionWithData $exception ) { print_r($exception->getData()); }
基础
这是一个解决在PHP异常中添加数据问题的库。我不太赞成为如此简单的功能创建一个库,但几乎所有的项目都需要这个功能。
此外,如果这个代码被以任何形式重复,就需要有多个捕获。
try { //something } catch ( \lib_1\ExceptionWithData $e ) { //handle 1 } catch ( \lib_2\ExceptionWithData $e ) { //handle 2 } catch ( \lib_3\ExceptionWithData $e ) { //handle 3 }
我为类选择了一个奇怪的名字,以表明我实际上想要以某种方式改变它。希望将来PHP的核心中可以添加一个新的异常类型。
现在还考虑了新的处理和工具,例如
- 序列化 Util::toArray()
- 异常重抛 Util::rethrow()
- 异常迭代捕获 Util::foreachTry()
安装
composer require labo86/exception_with_data
我的开发机器信息
+ hostnamectl
+ grep -e 'Operating System:' -e Kernel:
Operating System: Ubuntu 20.04 LTS
Kernel: Linux 5.4.0-33-generic
+ php --version
PHP 7.4.3 (cli) (built: May 26 2020 12:24:22) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
with Xdebug v2.9.2, Copyright (c) 2002-2020, by Derick Rethans
注意
- 代码遵循PSR-1的风格指南。
- 该项目旨在使用PhpStorm进行开发。
- 使用PHPUnit进行代码的单元测试。
- 文档使用phpDocumentor风格。