Heim > Backend-Entwicklung > PHP-Tutorial > Optimierung der Fabrikdatenerstellung mit der Recycle -Methode von Laravel.

Optimierung der Fabrikdatenerstellung mit der Recycle -Methode von Laravel.

百草
Freigeben: 2025-03-06 02:08:09
Original
844 Leute haben es durchsucht

Optimizing Factory Data Creation with Laravel's recycle Method

Das Fabriksystem von

Laravel bietet eine leistungsstarke Methode zur effizienten Datenerstellung. Diese Methode ist besonders nützlich, wenn sie komplexe Datenstrukturen mit miteinander verbundenen Beziehungen erstellen und redundante Modell -Instanziierung vermeiden. Die recycle -Methode wiederverwendet vorhandene Modellinstanzen über mehrere Werksaufrufe hinweg und steigert die Leistung erheblich. recycle

veranschaulichen wir ein E-Commerce-Szenario zum Testen:

<?php namespace Tests;

use App\Models\Store;
use App\Models\Product;
use App\Models\Category;
use App\Models\Order;
use Tests\TestCase;

class StoreTest extends TestCase
{
    public function test_sales_report_generation()
    {
        // Establish foundational data
        $store = Store::factory()->create();
        $categories = Category::factory(3)->recycle($store)->create();

        // Populate categories with products
        $products = Product::factory(20)->recycle($store)->recycle($categories)->create();

        // Generate orders referencing existing products
        $orders = Order::factory(50)->recycle($store)->recycle($products)->create()->each(function ($order) use ($products) {
            // Assign random products to each order
            $orderProducts = $products->random(rand(1, 5));
            $order->products()->attach(
                $orderProducts->pluck('id')->mapWithKeys(function ($id) {
                    return [$id => ['quantity' => rand(1, 5)]];
                })
            );
        });

        // Validate report generation
        $report = $store->generateSalesReport();
        $this->assertNotNull($report);
        $this->assertEquals(50, $report->total_orders);
    }
}
Nach dem Login kopieren
Dieses Beispiel zeigt, wie

die Erstellung einer Testdatenbank optimiert. Anstatt wiederholt recycle, Store und Category Instanzen zu erstellen, wird die Product -Methode wiederverwendet, was zu einer schnelleren Testausführung und einem verringerten Ressourcenverbrauch führt. Dies ist besonders vorteilhaft, wenn Sie mit großen Datensätzen oder komplizierten Beziehungen innerhalb der Modelle Ihrer Anwendung zu tun haben. recycle

Das obige ist der detaillierte Inhalt vonOptimierung der Fabrikdatenerstellung mit der Recycle -Methode von Laravel.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage