Оптимізація створення даних у Factory за допомогою методу recycle в Laravel

3
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Laravel надає потужний інструмент для полегшення розробки завдяки методу recycle, який дозволяє ефективно повторно використовувати моделі у різних викликах фабрики. Долучайтеся до нас, щоб дізнатися, як цей метод може покращити продуктивність вашого коду та спростити тестування у складних структурах даних
Система фабрик у Laravel вводить метод recycle, який забезпечує ефективне повторне використання екземплярів моделей під час багатьох викликів фабрик. Ця можливість особливо корисна при створенні складних структур даних із спільними зв'язками. ```php // Основне повторне використання $category = Category::factory()->create(); $products = Product::factory() ->count(3) ->recycle($category) ->create(); ``` Розгляньмо практичний приклад тестування для електронної комерції: ```php create(); $categories = Category::factory() ->count(3) ->recycle($store) ->create(); // Створення продуктів у категоріях $products = Product::factory() ->count(20) ->recycle($store) ->recycle($categories) ->create(); // Генерація замовлень, використовуючи ті ж продукти $orders = Order::factory() ->count(50) ->recycle($store) ->recycle($products) ->create() ->each(function ($order) use ($products) { // Додаємо 1-5 випадкових продуктів до кожного замовлення $orderProducts = $products->random(rand(1, 5)); $order->products()->attach( $orderProducts->pluck('id')->mapWithKeys(function ($id) { return [$id => ['quantity' => rand(1, 5)]]; }) ); }); // Тестування генерації звіту $report = $store->generateSalesReport(); $this->assertNotNull($report); $this->assertEquals(50, $report->total_orders); } } ``` Метод recycle значно покращує продуктивність фабрик, дозволяючи повторно використовувати наявні моделі замість створення нових екземплярів для кожної зв'язки.

Популярні

Logomark Logotype

Простий пакет RabbitMQ для Laravel

Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!

Logomark Logotype

Налаштування Xdebug з Docker та PHP 8.4 всього за одну хвилину

Встановлення Xdebug може бути складним завданням, але в цій статті ми розкриємо, як швидко та просто налаштувати його за допомогою Docker на прикладі Laravel. Дочитайте до кінця, щоб дізнатися, як за кілька хвилин зробити Xdebug вашим надійним помічником у розробці

Logomark Logotype

Оптимізація запитів до бази даних за допомогою скорочених методів Laravel

Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!