Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Використовуйте код під час оформлення замовлення:

Skills
09.12.2024
No categories

Фабрики Laravel: Створення реалістичних тестових даних за допомогою заводських шаблонів Laravel

Фабрики Laravel на VPS AlexHost: тестуємо як професіонал

Чому Laravel-фабрики на AlexHost? Фабрики Laravel – це ваш короткий шлях до створення реалістичних тестових даних, що робить розробку і тестування додатків легким і простим. У поєднанні з VPS-хостингом від AlexHost –з root-доступом, швидкістю SSD-накопичувачів і дивовижною безпекою – ви отримаєте ідеальний майданчик для створення і тестування додатків на Laravel. У цьому посібнику ви дізнаєтеся, як створювати та використовувати фабрики для швидкого отримання тестових даних, що гарантує готовність вашого додатка до запуску у виробництво.

Що таке фабрики в Laravel?

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

Фабрики використовують Faker, бібліотеку PHP, щоб генерувати фейкові дані, такі як імена, адреси, електронні адреси та інше, щоб дані виглядали реалістично.

Необхідні умови

  • Laravel 9 або новішої версії.
  • Базові знання моделей Eloquent та структури бази даних Laravel.
  • Підключення до бази даних, налаштованої у вашому .env файлі.

Крок 1: Створення фабрики моделей

У Laravel 8 і пізніших версіях фабрики визначаються як класи. Ви можете створити нову фабрику за допомогою команди artisan:

php artisan make:factory UserFactory

Це створить новий файл фабрики в каталозі database/factories з ім’ям UserFactory.php.

Крок 2: Визначте фабрику

Відкрийте файл UserFactory.php, розташований у каталозі database/factories:


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

Пояснення

  • $model: Вказує, для якої моделі Eloquent призначена ця фабрика.
  • definition(): Цей метод повертає масив атрибутів, які визначають модель. Він використовує екземпляр Faker ($this->faker) для генерації випадкових даних для кожного атрибуту.
  • name: використовує faker->name для створення реалістичного імені.
  • email: використовує faker->unique()->safeEmail для створення унікальної адреси електронної пошти.
  • password: встановлює пароль за замовчуванням за допомогою функції bcrypt().
  • remember_token: Генерує випадковий рядок для поля remember_token.

Це заводське визначення створить реалістичні облікові дані користувача з унікальною адресою електронної пошти та випадковими іменами.

Крок 3: Використовуйте фабрики для створення екземплярів моделі

Ви можете використовувати фабрику для створення одного або декількох екземплярів моделі. Ось кілька прикладів:

3.1. Створення одного користувача

Щоб створити єдиний екземпляр користувача в тесті або сівалці, використовуйте метод create:

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

Це створить користувача в базі даних з атрибутами, визначеними на заводі.

3.2. Створення декількох користувачів

Для створення декількох екземплярів користувачів:

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

Це створить 10 записів користувача в базі даних.

3.3. Створити екземпляр без збереження (метод Make)

Якщо ви хочете створити екземпляр без збереження в базі даних, використовуйте метод make:

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

Це створить об’єкт моделі User без збереження його в базі даних.

Крок 4: Налаштування заводських станів

Стани дозволяють вам визначати різні версії фабрики, що може бути корисно для створення користувачів з різними ролями або статусами.

4.1. Визначте стан

Ви можете визначати стани в межах класу фабрики:

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

Цей стан адміністратора можна використовувати для створення користувачів з атрибутом is_admin, встановленим у true.

4.2. Використання стану

Використовувати стан адміністратора при створенні користувачів:

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

Це створить користувача з атрибутом is_admin, встановленим у true.

Крок 5: Використання фабрик у тестах

Фабрики є особливо потужним інструментом при написанні тестів. Вони дозволяють швидко створювати тестові дані і зосередитися на логіці, яку ви перевіряєте.

5.1. Створення тестових даних у тестовому кейсі

Ось приклад використання фабрики в тесті:

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

Цей тест створює користувача, а потім перевіряє, чи існує він у таблиці користувачів із зазначеним email.

Крок 6: Заповнення бази даних фабриками

Заводи також можуть бути використані в сівалках бази даних для заповнення таблиць даних зразків.

6.1. Створення сівалки

Створіть сівалку за допомогою команди ремісник:

php artisan make:seeder UserSeeder

Відкрийте файл UserSeeder.php у каталозі database/seeders і скористайтеся фабрикою для створення користувачів:


}
}

Цей седер створить 50 користувачів за допомогою фабрики користувачів.

6.2. Запуск сівалки

Запустіть сівалку за допомогою:

php artisan db:seed --class=UserSeeder

Ця команда заповнює таблицю користувачів 50 випадковими записами користувачів.

Крок 7: Використання з’єднань на фабриках

Якщо у вас є моделі зі зв’язками, такі як User і Post, ви можете створити фабрики, які створюють зв’язані дані:

7.1. Визначте зв’язки

У PostFactory.php:

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

Це визначення гарантує, що при створенні допису користувач буде автоматично згенерований за допомогою фабрики користувачів.

7.2. Створення допису з асоційованим користувачем

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

Це створить допис з асоційованим з ним користувачем.

Висновок: Фабрики AlexHost = тестування нірвани

Фабрики Laravel дозволяють миттєво отримувати дані для тестування, а VPS від AlexHost надає вашому додатку Laravel швидкість і контроль, щоб виблискувати. Від окремих користувачів до складних взаємозв’язків, фабрики спрощують тестування та запуск. Розгорніть свій VPS, запустіть php artisan db:seed і спостерігайте, як ваш додаток оживає. Потрібна допомога? AlexHost допоможе – кодуй, тестуй, перемагай!

Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Використовуйте код під час оформлення замовлення:

Skills

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