Новостная рассылка
Присоединяйтесь к нашему новостному бюллетеню и не пропускайте новости из мира Laravel, анонсы полезных пакетов и советы опытных разработчиков.

Новые функции-помощники в Laravel 5.5: throw_if и throw_unless

Автор статьи Eric L. Barnes Eric L. Barnes | Laravel throw_if and throw_unless Helpers | Виталий Николенко

В Laravel 5.5 будут доступны две новые вспомогательные функции throw_if и throw_unless. Обе предназначены для более удобного выбрасывания исключения.

«Как и другие функции-помощники, throw_if и throw_unless помогают делать код чистым и выразительным» говорит TJ Miller «В частности эти две функции могут заменить условный блок одной строкой кода. Это довольно круто.»

Давайте посмотрим на них более детально

throw_if

Делает именно то, что содержит в названии: если первый параметр - true, выбрасывает исключение. Вот пример использования:

$foo = false;
throw_if($foo, new BarException('Foo is false'));
// ИЛИ
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

Это обратная функция, действует с точностью до наоборот. Если первый параметр - false, выбрасывает исключение.

$foo = true;
throw_unless($foo, new BarException('Foo is True'));
// ИЛИ
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

В версии 5.5 дефолтные страницы сообщения об ошибках приобрели более современный вид.

Поддержка автоматический регистрации пакетов в Laravel 5.5

В Laravel 5.5 сервис-провайдеры и фасады подключаемых пакетов можно будет не прописывать вручную.