Правило валидации in_array

В версии 5.2.22 была добавлена возможность валидации массивов, что сильно упрощает жизнь разработчиков. В версии 5.2.23 будет добавлено новое правило in_array, которое позволяет проверить соответствует ли значение элемента массива элементу другого массива.

Validator::make(
    [
        'devices' => [['user_id' => 1], ['user_id' => 2]],
        'users' => [['id' => 1], ['id' => 2]]
    ],
    ['devices.*.user_id' => 'in_array:users.*.id']
);

Колбэки Arr::first() и Arr::last() станут необязательными

$array = [100, 200, 300];

// Вернет 100
Arr::first($array);

// Вернет 300
Arr::last($array);

// Вернет 200
Arr::first($array, function ($key, $value) {
    return $value >= 150;
});

Указание более одного middleware за раз в контроллерах

$this->middleware(['auth', 'subscribed'], ['only' => ['getCandy']]);

Новые директивы Blade - @php, @endphp и @unset

@php упрощает написание блоков php кода в шаблонах

@php($count = 1)

@php(++ $count)
@php
    $now = new DateTime();
    $environment = isset($env) ? $env : "testing";
@enphp

@unset это просто обертка для unset().

@unset($count)

Возможность расширения директив Blade

До версии 5.2.23 было невозможно расширять или переопределять директивы шаблонизатора, теперь это станет доступным для расширений.

Экранирование директив Blade с помощью @

// output: <?php continue; ?>
@continue

// output: @continue
@@continue

Новый почтовый драйвер для SparkPost

Ввиду последних довольно грустных событий с Mandrill, в версии 5.2.23 будет добавлен драйвер для Spark Post, который позволяет отправлять до 100000 писем ежемесячно бесплатно.

Новый метод monthlyOn() для планировщика

$schedule->call(function () {
    DB::table('tmp')->delete();
})->monthlyOn(4, '12:00');

Новый метод app()->isLocale()

// Теперь вместо
if (app()->getLocale() == 'en')

// можно будет делать так
if (app()->isLocale('en'))

Запросы к JSON полям MySQL 5.7 можно будет делать напрямую через query builder

JSON поля были добавлены в MySQL 5.7 и стали доступны в Laravel 5.2.22. В версии 5.2.23 можно будет делать запросы к JSON структурам напрямую из query builder'а.

К примеру имеем структуру:

{"en":"name","ru":"имя"}

Можно делать следующие запросы:

User::where('name->en', 'name')->get();

Новые хэлперы для тестирования - seeElement() и dontSeeElement()

К примеру имеем элемент:

<image width="100" height="50">

Следующие тесты вернут положительный результат:

$this->seeElement('image', ['width' => 100, 'height' => 50]);

$this->dontSeeElement('image', ['class' => 'video']);