dxw/result

v1.0.6 2023-07-19 11:14 UTC

This package is auto-updated.

Last update: 2024-09-19 13:34:22 UTC


README

打算作为 nikita2206/result 的即插即用替代品,增加了一个功能:wrap().

wrap() 受到 github.com/pkg/errors 的启发。

安装

composer require dxw/result

用法

返回值

function myfunc(): \Dxw\Result\Result
{
    if (/* error */) {
        // getErr() will return 'something went wrong'
        return \Dxw\Result\Result::err('something went wrong');
    }

    return \Dxw\Result\Result::ok($value);
}

处理 Result

$result = myfunc();
if ($result->isErr()) {
    echo sprintf("Error: %s\n", $result->getErr());
    exit(1);
}
$value = $result->unwrap();

从其他错误返回错误

function anotherfunc(): \Dxw\Result\Result
{
    $result = myfunc();
    if ($result->isErr()) {
        // getErr() will return 'got invalid value: something went wrong'
        return $result->wrap('got invalid value');
    }
    // do something with $result->unwrap()
}