PHPackages                             proklung/bitrix-fixture-database-generator-bundle - 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. [Database &amp; ORM](/categories/database)
4. /
5. proklung/bitrix-fixture-database-generator-bundle

ActiveSymfony-bundle[Database &amp; ORM](/categories/database)

proklung/bitrix-fixture-database-generator-bundle
=================================================

Bitrix+Symfony fixture generator bundle

1.0.5(4y ago)118MITPHPPHP &gt;=7.3 || ~8.0

Since May 3Pushed 4y ago1 watchersCompare

[ Source](https://github.com/ProklUng/bitrix.fixture.database.generator.bundle)[ Packagist](https://packagist.org/packages/proklung/bitrix-fixture-database-generator-bundle)[ RSS](/packages/proklung-bitrix-fixture-database-generator-bundle/feed)WikiDiscussions master Synced 4w ago

READMEChangelog (6)Dependencies (14)Versions (7)Used By (0)

Бандл для генерации случайного контента инфоблоков (highload блоков, кастомных таблиц) под Битрикс
==================================================================================================

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

***INTERNAL***

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

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

`composer require proklung/bitrix-fixture-database-generator-bundle`

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

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

Пример конфига(файл `local/configs/packages/bitrix-fixture-generator.yaml`):

```
bitrix-fixture-generator:
  # Игнорировать ошибки при создании элементов - сохранение картинок итд.
  ignore_errors: true

  # Пути к фикстурам.
  fixture_path:
    - '/local/classes/BaseFixtures/'

  # Набор команд, генерирующих нужную фикстуру.
  structure_project:
    - migrator:elements spravochnik content --truncate=true --sections=false --count=20
    - migrator:elements common content --truncate=true --sections=true --count=5
    - migrator:elements-hl ExampleHighload --truncate=true --count=5
```

Генерация проекта
-----------------

[](#генерация-проекта)

Запуск генерации содержимого проекта. Последовательно выполняются команды из ключа `structure_project` конфигурации бандла (файл `local/configs/packages/bitrix-fixture-generator.yaml`)

`php bin/console migrator:structure`

Генерация содержимого инфоблока
-------------------------------

[](#генерация-содержимого-инфоблока)

Инфоблок common, очищать элементы, генерировать подразделы, 5 элементов.

`php bin/console migrator:elements common content --truncate=true --sections=true --count=5`

Инфоблок spravochnik, не очищать элементы, не генерировать подразделы, 5 элементов

`php bin/console migrator:elements spravochnik content --truncate=false --sections=false --count=5`

Генерация содержимого highload инфоблока
----------------------------------------

[](#генерация-содержимого-highload-инфоблока)

HL-block ExampleHighload. Очищать элементы, 5 элементов.

`php bin/console migrator:elements-hl ExampleHighload --truncate=true --count=5`

Генерация содержимого кастомной таблицы
---------------------------------------

[](#генерация-содержимого-кастомной-таблицы)

Кастомная таблица. Очищать элементы, 5 элементов.

`php bin/console migrator:seed d_ah_news --truncate=true --count=5`

Генерация случайных пользователей
---------------------------------

[](#генерация-случайных-пользователей)

Случайные пользователи. Сначала удалять всех, 5 пользователей с номерами телефонов в качестве логина.

`php bin/console migrator:users --truncate=true --count=5 --phone=true`

Фикстуры
--------

[](#фикстуры)

ID: `content.common` -&gt; тип инфоблока content, код инфоблока common. Файл в папке с фикстурами `content.common.php`

Пример фикстуры в виде массива:

```
use Prokl\BitrixFixtureGeneratorBundle\Services\Generators\EnumGenerator;
use Prokl\BitrixFixtureGeneratorBundle\Services\Generators\ImageGenerator;
use Prokl\BitrixFixtureGeneratorBundle\Services\Generators\LinkElementGenerator;
use Prokl\BitrixFixtureGeneratorBundle\Services\Generators\SentenceGenerator;

return [
//    'PREVIEW_TEXT' => 'bitrix_fixture_generator.preview_text_generator',
//    'DETAIL_TEXT' => 'bitrix_fixture_generator.detail_text_generator',
//    'NAME' => 'bitrix_fixture_generator.name_generator', // Alias сервиса
    'PROPERTY_VALUES' => [
        'STRING' => SentenceGenerator::class, // Сервис, помеченный тэгом fixture_generator.item.
        'FILE' => ImageGenerator::class, // Сервис, помеченный тэгом fixture_generator.item.
        'MULTIPLE_STRING' => 'bitrix_fixture_generator.multiple_string_generator', // Штатный сервис-генератор из бандла.
        'MULTIPLE_FILE' => 'bitrix_fixture_generator.multiple_image_generator',
        'ENUM' => EnumGenerator::class,
        'MULTIPLE_ENUM' => 'bitrix_fixture_generator.multiple_enum_generator',
        'LINK' => LinkElementGenerator::class,
        'MULTIPLE_LINK' => 'bitrix_fixture_generator.multiple_link_generator',
    ]
];
```

Указываются только поля, которые обрабатываются особым образом. Для стандартных полей предусмотрены генераторы по умолчанию:

Элементы:

```
[
        'PREVIEW_PICTURE' => 'bitrix_fixture_generator.preview_picture_generator',
        'DETAIL_PICTURE' => 'bitrix_fixture_generator.detail_picture_generator', // Сервис, помеченный тэгом fixture_generator.item.
        'ACTIVE_FROM' => DateGenerator::class,
        'CREATED_BY' => UserIdGenerator::class,
        'MODIFIED_BY' => UserIdGenerator::class,
        'PREVIEW_TEXT' => 'bitrix_fixture_generator.preview_text_generator',
        'PREVIEW_TEXT_TYPE' => 'html',
        'DETAIL_TEXT' => 'bitrix_fixture_generator.detail_text_generator',
        'DETAIL_TEXT_TYPE' => 'html',
        'NAME' => 'bitrix_fixture_generator.name_generator', // Alias сервиса
        'CODE' => CodeGenerator::class,
    ];
```

Разделы:

```
    [
        'NAME' => 'bitrix_fixture_generator.name_generator', // Alias сервиса
        'CODE' => CodeGenerator::class,
        'PICTURE' => 'bitrix_fixture_generator.preview_picture_generator',
        'DETAIL_PICTURE' => 'bitrix_fixture_generator.detail_picture_generator',
        'DESCRIPTION' => 'bitrix_fixture_generator.preview_text_generator',
        'DESCRIPTION_TYPE' => 'html',
        'MODIFIED_BY' => UserIdGenerator::class,
    ];
```

Фикстуры в виде класса, реализующего `FixtureInterface` (подтягиваются автоматически из массива с директориями фикстур, задаются в конфиге бандла):

```
use Prokl\BitrixFixtureGeneratorBundle\Services\Annotations\FieldParams;
use Prokl\BitrixFixtureGeneratorBundle\Services\Contracts\FixtureInterface;
use Prokl\BitrixFixtureGeneratorBundle\Services\Generators\EnumGenerator;
use Prokl\BitrixFixtureGeneratorBundle\Services\Generators\ImageGenerator;
use Prokl\BitrixFixtureGeneratorBundle\Services\Generators\LinkElementGenerator;
use Prokl\BitrixFixtureGeneratorBundle\Services\Generators\SentenceGenerator;

class ContentCommonFixture implements FixtureInterface
{
   /**
     * ID фикстуры (тип инфоблока . код инфоблока).
     *
     * @return string
     */
    public function id() : string
    {
        return 'content.common';
    }

    /**
     * Фикстура
     * @FieldParams(
     *    params={
     *     "PREVIEW_PICTURE"= { "width"=400, "height"=400 },
     *     "PROPERTY_VALUES" = {
     *          "STRING"= { "length"=22 }
     *      }
     *    }
     * )
     */
    public function fixture() : array
    {
        return [
            'PREVIEW_PICTURE' => ImageGenerator::class,
            'PROPERTY_VALUES' => [
                'STRING' => SentenceGenerator::class,
                'FILE' => ImageGenerator::class,
                'MULTIPLE_STRING' => 'bitrix_fixture_generator.multiple_string_generator',
                'MULTIPLE_FILE' => 'bitrix_fixture_generator.multiple_image_generator',
                'ENUM' => EnumGenerator::class,
                'MULTIPLE_ENUM' => 'bitrix_fixture_generator.multiple_enum_generator',
                'LINK' => LinkElementGenerator::class,
                'MULTIPLE_LINK' => 'bitrix_fixture_generator.multiple_link_generator',
                // 'YES' => 1,
            ]
        ];
    }
}
```

Через аннотации задаются дополнительные параметры генератора. Они попадают в метод `generate` генератора в параметр

`payload`:

```
    public function generate(?array $payload = null)
    {
        $width = array_key_exists('width', $payload['params']) ? $payload['params']['width'] : 0;
    }
```

Генераторы контента
-------------------

[](#генераторы-контента)

Интерфейс `FixtureGeneratorInterface`, наследуются от `AbstractGenerator`. Нужно реализовать только метод `abstract public function generate(?array $payload = null)`.

Помечаются тэгом `fixture_generator.item`.

Штатно:

- `ImageIdGenerator`
- `UserIdGenerator`
- `HtmlGenerator`
- `TextGenerator`
- `CodeGenerator`
- `SortGenerator`
- `ImageGenerator`
- `DateGenerator`
- `LinkElementGenerator`
- `RandomLinkElementGenerator`
- `MultipleGeneratorDecorator` - декоратор, чтобы любой генератор обычного свойства сделать генератором множественного свойства.

Как-то так:

```
  # Множественное поле типа Cтрока.
  bitrix_fixture_generator.multiple_string_generator:
    class: Prokl\BitrixFixtureGeneratorBundle\Services\Generators\MultipleGeneratorDecorator
    arguments:
      - '@Prokl\BitrixFixtureGeneratorBundle\Services\Generators\SentenceGenerator' # Базовый генератор
      - 5 # Количество элементов
    tags:
      - { name: fixture_generator.item }
```

- `RandomLinkSectionGenerator`
- `LinkSectionsGenerator`
- `EnumGenerator`
- `SentenceGenerator`
- `IntGenerator`
- `StringGenerator`
- `BaseOptionGenerator`
- `YesNoGenerator`

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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.

###  Release Activity

Cadence

Every ~19 days

Total

6

Last Release

1734d ago

PHP version history (2 changes)1.0.0PHP &gt;=7.1 | ~8.0

1.0.5PHP &gt;=7.3 || ~8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/9210c86ee6734e537eaf22c0f2fe7a965451e340e39e1aae2b74013f24c2660d?d=identicon)[gedovan](/maintainers/gedovan)

---

Top Contributors

[![ProklUng](https://avatars.githubusercontent.com/u/19857467?v=4)](https://github.com/ProklUng "ProklUng (8 commits)")

---

Tags

bitrixbitrix-symfonyphp7symfony-bundle

### Embed Badge

![Health badge](/badges/proklung-bitrix-fixture-database-generator-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/proklung-bitrix-fixture-database-generator-bundle/health.svg)](https://phpackages.com/packages/proklung-bitrix-fixture-database-generator-bundle)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M647](/packages/sylius-sylius)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M151](/packages/sulu-sulu)[symplify/monorepo-builder

Not only Composer tools to build a Monorepo.

5205.3M81](/packages/symplify-monorepo-builder)

PHPackages © 2026

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