Цього тижня команда 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Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю
Вперше у світі Laravel з'являється можливість, яка значно спростить ваше повсякденне програмування завдяки новому пакету Laravel Boost. Читайте статтю, щоб дізнатися, як посилена інтеграція штучного інтелекту може підвищити ефективність вашої роботи та оптимізувати створення проектів у Laravel
Ви знали, що в одному додатку Laravel можна реалізувати кілька API? У нашій статті ви дізнаєтеся, як за допомогою Scramble легко документувати різні версії API та налаштувати доступ до документації, щоб зробити її публічною або приватною. Читайте далі, щоб дізнатися більше