azjezz /roew
类似Hack的ResultOrExceptionWrapper
Requires
- php: ^7.2
Requires (Dev)
- phpunit/phpunit: ^8.2
- vimeo/psalm: ^3.4
This package is auto-updated.
Last update: 2021-04-11 21:30:17 UTC
README
PHP的类似Hack的结果或异常包装器。
安装
可以使用Composer安装此包。
$ composer require azjezz/roew
使用方法
<?php use Roew as w; $wrapper = w\result(5); assert($wrapper->isSucceeded()); $result = $wrapper->getResult(); $wrapper = w\exception(new Exception('failed')); assert($wrapper->isFailed()); $e = $wrapper->getException(); $wrapper = w\wrap( fn() => bin2hex(random_bytes(32)) ); if ($wrapper->isSucceeded()) { echo 'Succeeded : '.$wrapper->getResult(); } else { echo 'Failed : '.$wrapper->getException()->getMessage(); }
API
抽象 Roew\ResultOrExceptionWrapper
表示操作的结果,要么是成功的结果,要么是失败时的异常对象。
这是一个抽象类。您通常通过调用
wrap
来获得() ResultOrExceptionWrapper
,传入callable(): T
,并返回一个WrappedResult
或WrappedException
。
@template T
public function Roew\ResultOrExceptionWrapper
返回操作的结果,或者在失败时抛出底层异常。
- 如果操作成功:返回其结果。
- 如果操作失败:抛出导致失败异常。
@return T
- 操作成功时的结果
public Roew\ResultOrExceptionWrapper::getException(): Exception
返回底层异常,或者在成功时抛出逻辑异常。
- 如果操作成功:失败时抛出逻辑异常。
- 如果操作失败:返回表示失败的异常。
@throws \LogicException
- 当操作成功时
public Roew\ResultOrExceptionWrapper::isSucceeded(): bool
指示与该包装器关联的操作是否正常执行。
如果
isSucceeded()
返回true
,则isFailed()
返回false
。
@return bool
- 如果操作成功则为true
;否则为false
public Roew\ResultOrExceptionWrapper::isFailed(): bool
指示与该包装器关联的操作是否通过某种异常异常退出。
如果
isFailed()
返回true
,则isSucceeded()
返回false
。
@return bool
- 如果操作失败则为true
;否则为false
参考
- https://docs.hhvm.com/hack/reference/interface/HH.Asio.ResultOrExceptionWrapper/
- https://docs.hhvm.com/hack/reference/class/HH.Asio.WrappedResult/
- https://docs.hhvm.com/hack/reference/class/HH.Asio.WrappedException/
许可证
The Roew Project 是开源软件,许可协议为MIT。