phact-cmf-modules / filler
Filler module for phact CMF
Requires
- php: ^7.1.3
- phact-cmf/phact: ^1.0.3
This package is auto-updated.
Last update: 2025-03-24 22:43:34 UTC
README
Конфиг (filler.php)
Бросить в app/config
<?php return [ \Modules\Catalog\Models\Category::class => [ 'scheme' => 'tree', 'dict' => 'categories', 'dictSettings' => [ 'title' => 'name' ], 'fields' => [ ], 'skip' => [], 'limit' => 100 ], \Modules\Catalog\Models\Product::class => [ 'scheme' => 'flat', 'fields' => [ 'category' => [ 'filter' => [ 'lft' => new \Phact\Orm\Expression('rgt - 1') ], 'exclude' => [] ], 'price' => [ 'from' => 1000, 'to' => 20000 ] ], 'skip' => [], 'limit' => 100 ] ];
Команда
# php index.php Filler Fill
Опции
scheme - доступно 2 схемы - плоская ("flat") и дерево ("tree")
dict - словарь (путь до словаря, например "Modules.YourModule.dict.tree_dict"), по умолчанию для дерева можно указать просто "categories" - он подцепит "Modules.Filler.dict.categories"
dictSettings - переименование полей словаря в необходимые нам. Пример для словаря "categories" - там наименование объекта задано через атрибут "name", а в нашей модели это "title". Определяем dictSettings:
... 'dictSettings' => [ 'name' => 'title' ] ...
skip - список полей, которые будут пропущены при генерации
limit - ограничение по количеству сгенерированных объектов (не применяется при активном словаре)
fields - настройки для генерации полей
Приведу список типов полей и настроек для них
Поля с объявленными choices
Будут заполнены одним из choices-элементов. При этом если поле может быть null, то null-значения тоже могут применяться
JsonField, SlugField, PositionField
Эти поля будут опущены при генерации и заполнятся значеиями по-умолчанию
ForeignField
Будет заполнено случайным объектом, класса modelClass , заданного полю
Доступные настройки:
filter - QuerySet фильтр для выбора объекта. По-умолчанию: []
exclude - QuerySet исключение для выбора объекта. По-умолчанию: []
FileField
Будет заполнено случайным файлом из папки
Доступные настройки:
path - путь до папки с файлами для заполнения. По-умолчанию: "Modules.Filler.files"
extensions - список расширений для заполнения. Пример: ['zip', 'pdf']. По-умолчанию: null
ImageField
Аналогично FileField, отличается лишь путем по-умолчнию: "Modules.Filler.images"
BooleanField
true или false, всё просто
DateField, DateTimeField, TimeField
Будет заполнено случайным значением даты/времени
Доступные настройки
from - текстовое представление даты, от которой будет происходить выбор случайного значения. По-умолчанию: "-100 days"
to - текстовое представление даты, до которой будет происходить выбор случайного значения. По-умолчанию: "+100 days"
EmailField
Будет заполнено случайным email
TextField
Будет заполнено случайным текстом
Доступные настройки:
fromWords - минимальное количество слов. По-умолчанию: 20
toWords - максимальное количество слов. По-умолчанию: 100
CharField
Аналогично TextField, кол-во слов по умолчанию от 2 до 5
IntField, FloatField, DecimalField
Будет заполнено случайным значением
Доступные настройки
from - целое значание, от которого будет происходить выбор случайного значения. По-умолчанию: 0
to - целое значание, до которого будет происходить выбор случайного значения. По-умолчанию: 1000