Цього тижня команда Laravel випустила версію 12.37.0, в якій з'явилися новий драйвер фонових черг, метод вставки в Factory, ряд рядкових функцій, зокрема ucwords(), та інші нововведення
Barry vd. Heuvel запропонував драйвер черг, який відправляє завдання у фоновий режим за допомогою Concurrently::defer(). Завдання серіалізується та виконується з процесу PHP:
Цей драйвер, подібно до попереднього, відправляє завдання у фон, але використовує
Concurrently::defer()замість звичайного відкладання. Це означає, що завдання буде серіалізоване і виконуватиметься з PHP-процесу, що може бути більш підходящим для "важчих" чи триваліших запитів.Сценарії використання будуть схожими на
Concurrently::defer(), але спрощені у вигляді завдання.
RecordDelivery::dispatch($order)->onConnection('background');
Детальніше ознайомитися з документацією з відкладеного виконання
Andrew Brown реалізував можливість передавати необов'язковий параметр глибини в методи файлової системи. Це оновлення зворотно сумісне, оскільки значення за замовчуванням — 0, що раніше було закодованим значенням глибини.
use Illuminate\Support\Facades\Storage;
$files = Storage::files($directory, depth: 2);
$directories = Storage::directories($directory, depth: 2);
Luke Kuzmish додав метод Factory::insert(), який дозволяє масову вставку моделей. При використанні методу create для великої кількості записів вони вставляються через окремі запити:
User::factory()->count(100)->create();
// Масова вставка записів моделей
User::factory()->count(100)->insert($attributes = [], $parent = null);
При використанні методу insert() події моделі не генеруються.
Timo Mühlbach вніс зміни в реалізацію JSON-схеми, додавши підтримку задніх енумів та метод форматування для StringType:
// Enum до
$schema->string('oneof')->enum(['a', 'b', 'c']);
// Після
$schema->string('oneof')->enum(Options::class);
// Додаємо метод `format()` для `StringType`
$schema->string('somedate')->format('date');
@braxey реалізував метод ucwords() у класах Str та Stringable:
Str::ucwords('laravel framework'); // Laravel Framework
str('laravel frameWork')->lower()->ucwords(); // Laravel Framework
Chinmay Purav оновив команду php artisan about, щоб надавати детальну інформацію про драйвери резервного копіювання:
Ознайомитися зі скріншотами можна у Pull Request #57579, #57582 та #57590.
Повний перелік нових функцій і оновлень ви можете знайти нижче, а також ви можете переглянути зміни між 12.36.0 та 12.37.0 на GitHub. Нижче наведені примітки до випуску з журналу змін:
files() і directories() від @browner12 за https://github.com/laravel/framework/pull/57573Factory@insert() від @cosmastech в https://github.com/laravel/framework/pull/57600Connection@listen() від @cosmastech в https://github.com/laravel/framework/pull/57633