azjezz/roew

该包已被弃用且不再维护。未建议替代包。

类似Hack的ResultOrExceptionWrapper

0.1.0 2019-07-30 04:09 UTC

This package is auto-updated.

Last update: 2021-04-11 21:30:17 UTC


README

PHP的类似Hack的结果或异常包装器。

Build Status SymfonyInsight Total Downloads Latest Stable Version License

安装

可以使用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,并返回一个 WrappedResultWrappedException

@template T

public function Roew\ResultOrExceptionWrapper::getResult(): T

返回操作的结果,或者在失败时抛出底层异常。

  • 如果操作成功:返回其结果。
  • 如果操作失败:抛出导致失败异常。

@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

参考

许可证

The Roew Project 是开源软件,许可协议为MIT。