Як генерувати тестові або імітаційні дані за допомогою фабрик Laravel

фабрика laravel

Laravel Framework має багато функцій, які полегшують і пришвидшують веб-розробку.

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

У цій статті ми побачимо, як використовувати завод з Laravel і як заповнити БД i Факер di Laravel.

Приблизний час читання: 6 хвилин

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

Una завод in Laravel це клас, який дозволяє нам генерувати тестові дані. Фабрики надають можливість створювати моделі з фіктивними даними за допомогою Faker Laravel, тож ви можете тестувати свою програму без потреби в реальних даних. Це особливо корисно, коли ви розробляєте свою програму і вам потрібно протестувати різні сценарії.

Як створити фабрику

Щоб створити a завод in Laravel, нам потрібно запустити команду Artisan make:factory. Ця команда створює новий клас завод в каталозі database/factories.

Ось приклад того, як його створити завод для моделі User:

php artisan make:factory UserFactory --model=User

Ця команда створить клас UserFactory в каталозі database/factories. Варіант --model=User повідомляє Laravel, що фабрика призначена для моделі User.

Як створити модель Factory

Як тільки ви створите один завод, вам потрібно створити модель Factory. Ви можете зробити це, визначивши закриття в методі define класу завод.

Ось приклад того, як визначити a завод для моделі User:

use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;

class UserFactory extends Factory
{
    protected $model = User::class;

    public function definition()
    {
        return [
            'name' => $this->faker->name(),
            'email' => $this->faker->unique()->safeEmail(),
            'password' => bcrypt('password'),
        ];
    }
}

У цьому прикладі ми визначаємо фабрику для моделі User. Метод definition повертає масив, що містить атрибути моделі User. У цьому випадку ми генеруємо випадкове ім’я та адресу електронної пошти за допомогою бібліотеки Faker і встановлюємо пароль на «password».

Як використовувати фабрику

Після визначення a завод, ви можете використовувати його для створення тестових даних. Щоб створити єдиний екземпляр моделі, ви можете використовувати методи makecreate заводу.

Ось приклад створення єдиного шаблону User використовуючи метод create:

$user = Користувач::factory()->create();

Цей код створює нову модель User con dati casuali e lo salva nel база даних.

Ви також можете скористатися методом make per creare un’istanza del modello senza salvarlo nel база даних:

$user = Користувач::factory()->make();

Цей код створює нову модель User con dati casuali ma non lo salva nel база даних.

Якщо ви хочете створити кілька екземплярів моделі, ви можете скористатися цим методом count:

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

Цей код створює 10 нових моделей User con dati casuali e li salva nel база даних.

Факер Laravel

Що таке Laravel Faker? Laravel Faker — це бібліотека для створення PHP неправдиві дані per te. Se hai bisogno di avviare il tuo база даних, creare documenti XML di bell’aspetto, completare la tua perseveranza per sottoporlo a stress test o rendere anonimi i dati presi da un servizio di produzione, allora devi usare i Laravel Faker.

Як користуватися Fakers

Деякі основи:

  • Підроблені налаштування мови за замовчуванням : За замовчуванням Faker використовує налаштування мови en_US. Ви можете змінити його, щоб генерувати дані на різних мовах і форматах. Наприклад, щоб використовувати французьку мову, ви повинні створити новий екземпляр Faker таким чином:
    • $faker = Faker\Factory::create('fr_FR');
  • Генерація неправдивих даних : Ви можете генерувати підроблені дані, викликаючи методи у своєму екземплярі Faker. Наприклад, щоб створити фальшиве ім’я, ви повинні зробити:
    • $name = $faker->name;
  • Faker Форматери : Faker надає багато засобів форматування, які можна використовувати для створення різних типів даних, таких як адреси, номери телефонів і текст. Ви можете переглянути повний список формататорів у Репозиторій Faker GitHub .

Підроблені форматувальники Laravel

Faker formatters — це методи, які ви викликаєте для генерування фальшивих даних. Вони згруповані за категоріями, наприклад PersonAddressText. Ось як їх можна використовувати:

  • Доступ до власності Faker : ви можете отримати доступ до будь-якого засобу форматування як властивості. Наприклад, щоб створити фальшиве ім’я, ви можете:
    • $name = $faker->name;
  • Підроблені виклики методу : Ви також можете викликати засоби форматування як методи. Це корисно, коли форматувальник приймає аргументи. Наприклад, щоб згенерувати випадкове число від 10 до 20, ви можете:
    • $number = $faker->numberBetween(10, 20);
  • Редагування даних за допомогою модифікаторів optional() і unique() Faker : ці модифікатори дозволяють контролювати, як генеруються дані. Наприклад, optional() повертає програму форматування null певний відсоток часу, e unique() гарантує, що засіб форматування ніколи не повертає те саме значення двічі.

Створіть фальшивих постачальників даних

Іноді вбудованих формататорів недостатньо. У цих випадках ви можете створити власних постачальників даних. Це як:

  1. Створіть новий клас, який розширюється \Faker\Provider\Base.
  2. Додайте методи для кожного типу даних, які ви хочете створити. Ви можете використовувати інші засоби форматування для створення цих даних.
  3. Додайте провайдера до Faker за допомогою методу addProvider(). Наприклад: $faker->addProvider(new MyCustomProvider($faker));

Тепер ви можете використовувати власні засоби форматування так само, як і вбудовані.

Інтеграція Laravel Faker із Laravel's Factory

Фабричні функції Laravel добре інтегруються з Faker. Ось як їх можна використовувати разом:

  • Як використовувати Laravel Faker із Laravel's Factory : у вашому фабричному визначенні ви можете використовувати Faker для створення даних для кожного атрибута. Наприклад, щоб створити фабрику для моделі користувача, ви можете:
$factory->define(App\User::class, function (Faker $faker) {
    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
    ];
});
  • Створення одного фабрика: ви можете створити нову фабрику за допомогою команди artisan make:factory. Наприклад, php artisan make:factory UserFactory створить нову фабрику для моделі User.
  • Визначення фабричних станів: Фабричні стани дозволяють визначати варіанти фабрики. Наприклад, ви можете визначити стан verified для вашої фабрики користувача, яка встановлює атрибут email_verified_at на поточну дату та час.

Практичні приклади використання Laravel Faker

Ось кілька прикладів того, як ви можете використовувати Laravel Faker для генерування підроблених даних:

  • Створення фейкових користувачів : За допомогою User Factory і Faker ви можете створювати фальшивих користувачів, як це: factory(App\User::class, 50)->create(); Буде створено 50 користувачів із випадковими іменами та електронними адресами.
  • Створення фейкових постів : якщо у вас є шаблон публікації та відповідна фабрика, ви можете створювати підроблені публікації для кожного користувача, як це:
App\User::all()->each(function ($user) {
    $user->posts()->saveMany(factory(App\Post::class, 10)->make());
});
  • Створення фейкових коментарів : Так само ви можете створювати фальшиві коментарі для кожної публікації, як це:
App\Post::all()->each(function ($post) {
    $post->comments()->saveMany(factory(App\Comment::class, 5)->make());
});

Пов'язані читання

Ercole Palmeri

Авторе

Вам може бути цікаво…