PHPackages                             calin-nicolai/seedergen - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. calin-nicolai/seedergen

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

calin-nicolai/seedergen
=======================

Laravel package for generating seeders

03PHP

Since Jun 16Pushed 11mo ago1 watchersCompare

[ Source](https://github.com/CalinNicolai/LaravelSeederGenerator)[ Packagist](https://packagist.org/packages/calin-nicolai/seedergen)[ RSS](/packages/calin-nicolai-seedergen/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Seedergen - Пакет для генерации сидеров в Laravel
=================================================

[](#seedergen---пакет-для-генерации-сидеров-в-laravel)

Описание
--------

[](#описание)

Seedergen - это пакет для генерации сидеров в Laravel из существующих данных в базе или на основе конфигурации. Пакет поддерживает генерацию фейковых данных с использованием Faker, а также конфигурируемые сидеры для различных таблиц базы данных.

Установка
---------

[](#установка)

Для установки пакета выполните команду:

```
composer require calinnicolai/seedergen
```

Команды
-------

[](#команды)

### `seedergen:generate`

[](#seedergengenerate)

Генерирует сидеры для указанной таблицы или для всех таблиц, если не указана таблица.

**Аргументы:**

- `table?` (опционально) - Имя таблицы, для которой нужно создать сидер. По умолчанию создаются сидеры для всех таблиц.

**Опции:**

- `--new` - Генерировать новые данные вместо использования существующих.
- `--count=10` - Количество генерируемых строк (только с флагом `--new`).

**Пример:**

```
php artisan seedergen:generate users --new --count=50
```

### `seedergen:scan`

[](#seedergenscan)

Сканирует базу данных и обновляет конфигурационный файл `seedergen.php` с таблицами и их отношениями.

**Пример:**

```
php artisan seedergen:scan
```

Конфигурация
------------

[](#конфигурация)

Конфигурация пакета хранится в файле `config/seedergen.php`. Пример конфигурации:

```
return [
    'database' => [
        'users' => [
            'enabled' => true,
            'fields' => [
                'name' => 'string',
                'email' => 'string',
                'age' => 'integer',
            ],
            'relations' => [
                'role_id' => [
                    'related_table' => 'roles',
                    'type' => 'belongsTo',
                ],
            ],
        ],
    ],
];
```

### Описание конфигурации таблиц

[](#описание-конфигурации-таблиц)

Конфигурация каждой таблицы в `seedergen.php` может включать следующие параметры:

#### 1. **enabled** (bool)

[](#1-enabled-bool)

- **Описание:** Указывает, включена ли генерация сидера для этой таблицы.
- **Тип:** `bool`
- **Пример:**```
    'enabled' => true,
    ```

#### 2. **fields** (array)

[](#2-fields-array)

- **Описание:** Перечисление полей таблицы и их типов данных.
- **Тип:** `array`
- **Пример:**```
    'fields' => [
        'name' => 'string',
        'email' => 'string',
        'age' => 'integer',
    ],
    ```

#### 3. **relations** (array)

[](#3-relations-array)

- **Описание:** Отношения между таблицами. Описывает связи с другими таблицами, если они есть.
- **Тип:** `array`
- **Пример:**```
    'relations' => [
        'role_id' => [
            'related_table' => 'roles',
            'type' => 'belongsTo',
        ],
    ],
    ```

#### 4. **options** (array)

[](#4-options-array)

- **Описание:** Дополнительные настройки для генерации данных. Например, минимальная и максимальная длина строк, префиксы, суффиксы и т.д.
- **Тип:** `array`
- **Пример:**```
    'options' => [
        'name' => [
            'minLength' => 5,
            'maxLength' => 50,
            'prefix' => 'Mr. ',
        ],
        'email' => [
            'minLength' => 10,
            'maxLength' => 100,
        ],
    ],
    ```

Типы данных и условия
---------------------

[](#типы-данных-и-условия)

### Типы данных

[](#типы-данных)

- **string** - Строка. Может быть использован для любых текстовых данных (имя, email и т.п.).
- **integer** - Целое число.
- **boolean** - Логическое значение (`true` или `false`).
- **json** - JSON-структура.
- **date** - Дата в формате `YYYY-MM-DD`.
- **timestamp** - Дата и время в формате `YYYY-MM-DD HH:MM:SS`.
- **name** - Тип для данных, связанных с именем (например, полное имя пользователя).
- **title** - Тип для данных, связанных с заголовками.

### Условия для полей

[](#условия-для-полей)

1. **minLength** (int)

    - Указывает минимальную длину строки.
    - **Пример:**```
        'minLength' => 5,
        ```
2. **maxLength** (int)

    - Указывает максимальную длину строки.
    - **Пример:**```
        'maxLength' => 100,
        ```
3. **prefix** (string)

    - Добавляет префикс к генерируемому значению.
    - **Пример:**```
        'prefix' => 'Mr. ',
        ```
4. **suffix** (string)

    - Добавляет суффикс к генерируемому значению.
    - **Пример:**```
        'suffix' => ' Jr.',
        ```
5. **values** (array)

    - Указывает фиксированные значения, из которых будет выбрано одно.
    - **Пример:**```
        'values' => ['red', 'green', 'blue'],
        ```
6. **numeric** (bool)

    - Если `true`, генерируется строка, состоящая только из цифр.
    - **Пример:**```
        'numeric' => true,
        ```
7. **structure** (array)

    - Структура для генерации JSON-данных.
    - **Пример:**```
        'structure' => [
            'address' => [
                'type' => 'string',
                'minLength' => 10,
                'maxLength' => 100,
            ],
        ],
        ```

### Пример конфигурации для таблицы с дополнительными параметрами:

[](#пример-конфигурации-для-таблицы-с-дополнительными-параметрами)

```
return [
    'database' => [
        'users' => [
            'enabled' => true,
            'fields' => [
                'name' => 'string',
                'email' => 'string',
                'age' => 'integer',
                'is_active' => 'boolean',
            ],
            'options' => [
                'name' => [
                    'minLength' => 5,
                    'maxLength' => 50,
                    'prefix' => 'Mr. ',
                ],
                'email' => [
                    'minLength' => 10,
                    'maxLength' => 100,
                ],
                'age' => [
                    'min' => 18,
                    'max' => 99,
                ],
            ],
            'relations' => [
                'role_id' => [
                    'related_table' => 'roles',
                    'type' => 'belongsTo',
                ],
            ],
        ],
    ],
];
```

Пример генерации сидера
-----------------------

[](#пример-генерации-сидера)

Предположим, у нас есть таблица `users` с полями `name`, `email`, `age`. Для этой таблицы можно сгенерировать сидер с фейковыми данными следующим образом:

1. Выполните команду:

```
php artisan seedergen:generate users --new --count=50
```

2. Пакет сгенерирует сидер в файле `database/seeders/UsersSeeder.php` с 50 строками фейковых данных.

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity14

Early-stage or recently created project

 Bus Factor1

Top contributor holds 75% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/e1834a74956d495a479590a0d55427e9604d30b13b1119b6137e134bd85e6ffe?d=identicon)[calin-nicolai](/maintainers/calin-nicolai)

---

Top Contributors

[![CalinNicolai](https://avatars.githubusercontent.com/u/133143858?v=4)](https://github.com/CalinNicolai "CalinNicolai (6 commits)")[![Nikolyska](https://avatars.githubusercontent.com/u/137420340?v=4)](https://github.com/Nikolyska "Nikolyska (2 commits)")

### Embed Badge

![Health badge](/badges/calin-nicolai-seedergen/health.svg)

```
[![Health](https://phpackages.com/badges/calin-nicolai-seedergen/health.svg)](https://phpackages.com/packages/calin-nicolai-seedergen)
```

###  Alternatives

[rupadana/filament-slider

Slide into Precision – Customizable Control at Your Fingertips.

1221.3k](/packages/rupadana-filament-slider)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
