Testați-vă abilitățile cu toate serviciile noastre de găzduire și beneficiați de 15% reducere!

Utilizați codul la finalizarea comenzii:

Skills
09.12.2024
No categories

Fabrici Laravel: Construirea de date de testare realiste cu modele de fabrici Laravel

Fabricile Laravel pe VPS AlexHost: Testați ca un profesionist

De ce fabrici Laravel pe AlexHost? Fabricile Laravel sunt scurtătura dvs. pentru a genera date de testare realiste, făcând dezvoltarea și testarea aplicației dvs. o briză. Împreună cu găzduirea VPS de la AlexHost – completăcu acces root, viteză SSD și securitate uimitoare – aveți terenul de joacă perfect pentru construirea și testarea aplicațiilor Laravel. Acest ghid vă conduce prin crearea și utilizarea fabricilor pentru a obține rapid date de testare, asigurându-vă că aplicația dvs. este pregătită pentru producție.

Ce sunt fabricile în Laravel?

Fabricile din Laravel sunt clase care definesc un plan pentru crearea instanțelor modelului. Acestea sunt deosebit de utile pentru generarea de date de testare false sau pentru alimentarea bazelor de date cu date originale. Folosind fabricile, puteți crea instanțe unice sau multiple ale modelelor dvs., fiecare cu atribute unice.

Fabricile utilizează Faker, o bibliotecă PHP pentru a genera date false, cum ar fi nume, adrese, e-mailuri și altele, pentru a face datele să pară realiste.

Condiții prealabile

  • Laravel 9 sau o versiune ulterioară.
  • Cunoștințe de bază despre modelele Eloquent și structura bazei de date Laravel.
  • Conexiune la o bază de date configurată în fișierul .env.

Pasul 1: Crearea unei fabrici de modele

În Laravel 8 și ulterior, fabricile sunt definite ca clase. Puteți crea o fabrică nouă utilizând comanda artisan:

php artisan make:factory UserFactory

Aceasta va crea un nou fișier fabrică în directorul database/factories numit UserFactory.php.

Pasul 2: Definirea fabricii

Deschideți fișierul UserFactory.php situat în database/factories:


'email' => $this->faker->unique()->safeEmail,
'email_verified_at' => now(),
'password' => bcrypt('password'), // or Hash::make('password')
'remember_token' => Str::random(10),
];}}

Explicație

  • $model: Indică pentru ce model de Eloquent este această fabrică.
  • definition(): Această metodă returnează o serie de atribute care definesc modelul. Aceasta utilizează instanța Faker ($this->faker) pentru a genera date aleatorii pentru fiecare atribut.
  • name: utilizează faker->name pentru a genera un nume realist.
  • email: utilizează faker->unique()->safeEmail pentru a genera o adresă de e-mail unică.
  • password: stabilește o parolă implicită utilizând funcția bcrypt().
  • remember_token: Generează un șir aleatoriu pentru câmpul remember_token.

Această definiție de fabrică va crea acreditări de utilizator realiste cu un e-mail unic și nume aleatorii.

Pasul 3: Utilizați fabricile pentru a crea instanțe de model

Puteți utiliza fabrica pentru a crea instanțe unice sau multiple ale unui model. Iată câteva exemple:

3.1. Crearea unui singur utilizator

Pentru a crea o singură instanță a unui utilizator într-un test sau seeder, utilizați metoda create:

$user = \App\Models\User::factory()->create();

Aceasta creează un utilizator în baza de date cu atributele definite în fabrică.

3.2. Crearea mai multor utilizatori

Pentru a crea mai multe instanțe de utilizatori:

$users = \App\Models\User::factory()->count(10)->create();

Acest lucru creează 10 înregistrări de utilizator în baza de date.

3.3. Crearea instanței fără salvare (metoda Make)

Dacă doriți să creați o instanță fără să o salvați în baza de date, utilizați metoda make:

$user = \App\Models\User::factory()->make();

Aceasta va crea un obiect model User fără a-l salva în baza de date.

Pasul 4: Personalizarea stărilor fabricii

Stările vă permit să definiți versiuni diferite ale fabricii, ceea ce poate fi util pentru crearea de utilizatori cu roluri sau stări diferite.

4.1. Definiți o stare

Puteți defini stări în cadrul clasei factory:

public function admin()
{
return $this->state(function (array $attributes) {
return [
'is_admin' => true,
];
});
}

Această stare admin poate fi utilizată pentru a crea utilizatori cu atributul is_admin setat la true.

4.2. Utilizarea stării

Pentru a utiliza starea admin la crearea utilizatorilor:

$adminUser = \App\Models\User::factory()->admin()->create();

Acest lucru va crea un utilizator cu atributul is_admin setat la true.

Pasul 5: Utilizarea fabricilor în teste

Fabricile sunt deosebit de puternice atunci când scrieți teste. Acestea vă permit să creați rapid date de testare și să vă concentrați pe logica pe care o testați.

5.1. Creați date de testare într-un caz de testare

Iată un exemplu de utilizare a unei fabrici într-un test:

public function test_users_can_be_created()
{
$user = \App\Models\User::factory()->create();$this->assertDatabaseHas('users', [
'email' => $user->email,
]);
}

Acest test creează un utilizator și apoi verifică dacă acesta există în tabelul users cu adresa de e-mail specificată.

Pasul 6: Popularea bazei de date cu fabrici

Fabricile pot fi, de asemenea, utilizate în alimentarea bazei de date pentru a popula tabelele de date de probă.

6.1. Crearea unui seeder

Creați un seeder utilizând comanda artisan:

php artisan make:seeder UserSeeder

Deschideți fișierul UserSeeder.php în database/seeders și utilizați fabrica pentru a genera utilizatori:


}
}

Acest seeder va crea 50 de utilizatori utilizând fabrica User.

6.2. Pornirea semănătorului

Porniți semănătorul utilizând:

php artisan db:seed --class=UserSeeder

Această comandă populează tabelul de utilizatori cu 50 de înregistrări aleatorii ale utilizatorilor.

Pasul 7: Utilizarea conexiunilor în fabrici

Dacă aveți modele cu legături, cum ar fi User și Post, puteți crea fabrici care creează date legate:

7.1. Definiți conexiunile

În PostFactory.php:

public function definition()
{
return [
'user_id' => \App\Models\User::factory(),
'title' => $this->faker->sentence,
'body' => $this->faker->paragraph,
];
}

Această definiție asigură faptul că, atunci când este creat un post, este generat automat un utilizator utilizând fabrica de utilizatori.

7.2. Crearea unei postări cu un utilizator asociat

$post = \App\Models\Post::factory()->create();

Aceasta va crea o postare cu un utilizator asociat acesteia.

Concluzii: Fabrici AlexHost = Nirvana testării

Fabricile Laravel fac ca datele de testare să fie simple, iar VPS-ul AlexHost oferă aplicației dvs. Laravel viteza și controlul necesare pentru a străluci. De la utilizatori unici la relații complexe, fabricile simplifică testarea și însămânțarea. Implementează pe VPS-ul tău, rulează php artisan db:seed și privește cum aplicația ta prinde viață. Aveți nevoie de ajutor? AlexHost te ajută – codifică, testează, cucerește!

Testați-vă abilitățile cu toate serviciile noastre de găzduire și beneficiați de 15% reducere!

Utilizați codul la finalizarea comenzii:

Skills

Похожие записи не найдены.