Dummy — це пакет, створений Стівом Бауманом, який дозволяє генерувати екземпляри PHP-класів із заповненими випадковими даними за допомогою Faker. Це може бути дуже корисно для отримання екземплярів будь-якого класу (не лише моделей Eloquent) з реалістичними даними під час тестування, заповнення бази даних або швидкого прототипування.
Встановити пакет можна через Composer:
composer require directorytree/dummy
Dummy надає можливість генерувати класи з випадковими даними двома способами:
HasFactory безпосередньо в класі, для якого потрібно згенерувати випадкові екземпляри.Factory клас, що надає більше контролю над процесом генерації даних.Приклади кожного з варіантів наведені нижче:
namespace App\Data;
use Faker\Generator;
use DirectoryTree\Dummy\HasFactory;
class Player
{
use HasFactory;
/**
* Створити новий екземпляр гравця.
*/
public function __construct(
public string $name,
public DateTime $dob,
public string $nationality,
) {}
/**
* Визначити стандартний стан фабрики.
*/
protected function getFactoryDefinition(Generator $faker): array
{
return [
'name' => $faker->name(),
'dob' => $faker->dateTimeBetween('1970-01-01', '-16 years'),
'nationality' => $faker->country(),
];
}
/**
* Створити новий екземпляр класу, використовуючи визначення фабрики.
*/
protected static function toFactoryInstance(array $attributes): static
{
return new static(
$attributes['name'],
$attributes['dob'],
$attributes['nationality'],
);
}
}
namespace App\Factories;
use App\Data\Player;
use DirectoryTree\Dummy\Factory;
class PlayerFactory extends Factory
{
/**
* Визначити стандартний стан фабрики.
*/
protected function definition(): array
{
return [
'name' => $this->faker->name(),
'dob' => $this->faker->dateTimeBetween('1970-01-01', '-16 years'),
'nationality' => $this->faker->country(),
];
}
/**
* Згенерувати новий екземпляр класу.
*/
protected function generate(array $attributes): Player
{
return new Player(
$attributes['name'],
$attributes['dob'],
$attributes['nationality'],
);
}
}
Для генерації випадкових екземплярів класу можна використовувати метод make:
// Використовуючи трейт:
$player = Player::factory()->make();
// Використовуючи клас фабрики:
$player = PlayerFactory::new()->make();
Крім того, пакет дозволяє:
count.Отже, у підсумку, Dummy є доповненням до стандартних класів фабрик Laravel, розширюючи підтримку для невиконаних класів, пропонуючи як варіант з трейтом, так і окремі реалізації фабрики, а також забезпечуючи зручний API для генерації екземплярів. Це універсальний інструмент для створення випадкових даних у різних частинах вашої програми.
Дізнайтеся більше про цей пакет та перегляньте вихідний код на GitHub.
Ви коли-небудь задумувалися, як полегшити свою роботу в Laravel? У нашій статті ми розглядаємо, як інтеграція Claude Code в PhpStorm може підвищити вашу продуктивність, спростивши процес написання коду та навчання нових розробників. Читайте далі, щоб дізнатися більше про переваги та функціональність цього потужного поєднання
Laravel 13 вийде в березні 2026 року й вимагатиме мінімум PHP 8.3. Хочете дізнатися, як PHP‑атрибути для моделей, нові налаштування черг і метод Cache::touch() вплинуть на вашу розробку?
Досліджуйте потужний пакет Intervention Image для PHP, який виводить редагування зображень на новий рівень з оновленою версією 3. Чи готові ви дізнатися, які нові можливості та функції чекають на вас у цьому інструменті