Команда Laravel цього тижня випустила версію 12.26.0, яка додала метод withHeartbeat() до Lazy колекцій, а також метод toPrettyJson() для колекцій, моделей та інших елементів. Крім того, стартер-кити Laravel для Vue та React тепер містять Wayfinder, що забезпечує безпечний зв'язок між маршрутами Laravel та вашим фронтендом.
Джо Таненбаум оновив стартер-кити Laravel для React і Vue, додавши Laravel Wayfinder. Wayfinder створює безпечний зв'язок між маршрутами Laravel та вашим фронтендом:
import { store, update } from "@/actions/App/Http/Controllers/PostController";
const Page = () => (
);
Джозеф Сільбер запропонував новий метод withHeartbeat() для LazyCollection, що дозволяє виконувати колбек через певні інтервали під час лінивої ітерації колекції. Джозеф поділився основним випадком використання цього методу в Запиті на злиття #56477:
У довготривалих завданнях, таких як обробка звітів, може знадобитися утримувати блок, щоб запобігти одночасному виконанню. Проте, якщо код несподівано не звільнить блок, він не повинен залишатися активним вічно. Звичайна стратегія полягає в тому, щоб отримати короткочасний блок і періодично його продовжувати, поки завдання все ще виконується.
Ось приклад, де ми отримуємо блок на 5 хвилин, а потім повторно отримуємо його кожні 4 хвилини (припускаючи, що звіт ніколи не займає повну хвилину для створення):
$lock = Cache::lock('generate-reports', CarbonInterval::minutes(5));
$lock->acquire();
Reports::where('status', 'pending')
->lazy()
->withHeartbeat(CarbonInterval::minutes(4), $lock->reacquire(...))
->each($this->generateReport(...));
$lock->release();
Документацію по колекціях було оновлено, включаючи розділ про метод withHeartbeat().
Венделл Адріель запропонував метод toPrettyJson(), який був реалізований у більшості місць, де існує метод toJson(). Наприклад, у колекціях, моделях, JSON-ресурсах, пагінаторах, Fluent екземплярах та пакетах повідомлень. Ось приклад з Запиту на злиття #56697 з використанням колекцій:
// До
$collection = collect([1, 2, 3]);
$collection->toJson(JSON_PRETTY_PRINT);
// Після
$collection = collect([1, 2, 3]);
$collection->toPrettyJson();
Ви можете ознайомитися з повним переліком нових функцій та оновлень нижче і переглянути різницю між версіями 12.25.0 і 12.26.0 на GitHub. Наступні примітки були взяті безпосередньо з чангелогу:
Database під керівництвом @jnoordsij у https://github.com/laravel/framework/pull/56688spliceIntoPosition, щоб допустити значення string|int під керівництвом @amirhshokri у https://github.com/laravel/framework/pull/56698array_first та array_last під керівництвом @KIKOmanasijev у https://github.com/laravel/framework/pull/56703withHeartbeat до LazyCollection під керівництвом @JosephSilber у https://github.com/laravel/framework/pull/56477toPrettyJson під керівництвом @WendellAdriel у https://github.com/laravel/framework/pull/56697array_first та array_last під керівництвом @KIKOmanasijev у https://github.com/laravel/framework/pull/56706MessageLogged під керівництвом @cosmastech у https://github.com/laravel/framework/pull/56713queue:prune-failed під керівництвом @amirhshokri у https://github.com/laravel/framework/pull/56732null у методі BusFake::chain() під керівництвом @stevebauman у https://github.com/laravel/framework/pull/56750ArrayStore::all() під керівництвом @cosmastech у https://github.com/laravel/framework/pull/56751$forceWrap до JsonResource для узгодженого API-відповіді #56724 під керівництвом @achrafAa у https://github.com/laravel/framework/pull/56736Ви знали, що в одному додатку Laravel можна реалізувати кілька API? У нашій статті ви дізнаєтеся, як за допомогою Scramble легко документувати різні версії API та налаштувати доступ до документації, щоб зробити її публічною або приватною. Читайте далі, щоб дізнатися більше
Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом
Вперше у світі Laravel з'являється можливість, яка значно спростить ваше повсякденне програмування завдяки новому пакету Laravel Boost. Читайте статтю, щоб дізнатися, як посилена інтеграція штучного інтелекту може підвищити ефективність вашої роботи та оптимізувати створення проектів у Laravel