辅助函数新成员 throw_if & throw_unless ( Laravel 5.5 新功能早知道)

file

为了更容易抛出异常, Laravel 5.5 中新增了两个辅助函数:throw_ifthrow_unless

TJ Miller 说,就跟其他辅助函数一样,throw_if 和 throw_unless 同样也能让代码显得更清晰更容易读懂,特别是这两个函数还能将条件块减少到一行。

接下来简单介绍下这两个函数以及它们的工作原理:

throw_if

顾名思义,即这个函数第一个传入的参数是布尔值,如果为 true 就抛出异常。

简单例子:

$foo = false;
throw_if($foo, new BarException('Foo is false'));
// or 
throw_if($foo, BarException::class, 'Foo is False'); 

下面是这个函数实现的参考内容:

function throw_if($boolean, $exception, $message = '')
{
    if ($boolean) {
        throw (is_string($exception) ? new $exception($message) : $exception);
    }
}

throw_unless

throw_if 一样的使用方法,只不过它是判断当传入的第一个参数为 false 时,才会抛出异常。

$foo = true;
throw_unless($foo, new BarException('Foo is True'));
// or
throw_unless($foo, BarException::class, 'Foo is True');

看,几乎一样的实现方法:

function throw_unless($boolean, $exception, $message)
{
    if (! $boolean) {
        throw (is_string($exception) ? new $exception($message) : $exception);
    }
}

这两个函数会在七月份推出的 Laravel 5.5 版本上发布~ 七月份哟!即下一个 LTS 的推出时间!

想更多更及时的知道 Laravel 的第一手资讯么?聪明的人都用上这个 插件 了呢!

参考链接:https://laravel-news.com/throw_if-throw_unless

Stay Hungry, Stay Foolish.