Skip to content
This repository has been archived by the owner on Sep 6, 2023. It is now read-only.

Модуль для генерации тестовых элементов для 1С Битрикс на основе Faker

Notifications You must be signed in to change notification settings

ggrachdev/bitrix_module_fish_generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 

Repository files navigation

Библиотека для генерации тестовых элементов для 1С Битрикс на основе Faker, которая позволит сэкономить время контент-менеджера и программиста для наполнения проекта данными и тестирования.

Библиотека находится в разработке (в будущем возможно изменение методов, параметров и т.п)

В будущем появится генератор не только элементов, но и разделов, элементов Highload блоков, генерация разных цен для разных валют, торговых предложений

Пример использования:

<?php
use GGrach\FishGenerator\Generators\FishGenerator;

\Bitrix\Main\Loader::includeModule('ggrachdev.fishgenerator');

/** 
* В конструктор передаем IBLOCK ID в который нужно сгенерировать тестовый элемент
* При setDebugMode = true в результирующий массив записываются данные для генерации
* При setStrictMode = true выбрасываются Exception'ы если что-то идет не так
* Вторым параметром в конструктор можно передать локализацию faker, по умолчанию ru_RU
* По умолчанию автоматически генерируются: имя, детальное фото, фото анонса, детальный текст + текст анонса, символьный код
* Системными полями считаются: 'NAME', 'ACTIVE', 'CODE', 'IBLOCK_SECTION_ID', 'DETAIL_TEXT', 'PREVIEW_TEXT', 'SORT'
* Если поле является системным, то нужно установки правил генерации ставить * перед ним, если же свойство является дополнительно созданным и к 
* нему нужно обращаться через PROPERTY_... то ничего в качестве префикса ставить не нужно
* В качестве способа генерации можно указывать любые методы библиотеки faker и передать параметры через (param_1, param_2):
* methodGenerate(1, 2, 3, 4, param 1, param 2) - Т.е если параметр строка - то скобки не надо ставить, массивы пока нельзя передавать
*/

// Генерировать в инфоблок с ID = 6
$result = (new FishGenerator(6))->setDebugMode(true)->setStrictMode(true)
->setCategoryPhoto(['technics', 'business', 'city'])
->setGenerationRules([
       /*  
       * Если свойство является системым, то ставим в начале *, если свойство является дополнительным у инфоблока (Т.е PROPERTY_NAME), то не ставим  
       * Если  нужно задать строгое значение свойства при добавлении элементов, то ставим =, можно группировать: *=, =, *, при этом в $ 
       * будет подставлен номер генерируемого     элемента
       */  
       '*=NAME' => 'Тестовый элемент $',
       
       /*  
       * Если свойство является множественным, то передаем массив - 1 элемент массива задаем генератор (так же поддерживаются *, =), 2 элемент массива - кол-во элементов для генерации  
       * Если нужно сгененировать одиночное свойство, то передаем просто строку (в качестве значения)  
       */  
       'PRODUCTION_PHOTOS' => [
           'image', 7
       ],
       
       'IMPLEMENTED_PROCESSES_POINTS' => [
           'randomElement(Тестовый пункт, Еще один пункт, Пункт производства, Новый пункт, Пункт элемента, Тестовый процесс, Процесс производства, Новый процесс производства)', 5
       ],
       
       'IMPLEMENTED_PROCESSES_VALUES' => [
           'realText(100)', 5
       ],
       
       // Свойство PROPERTY_NAME_IN_CATALOG сгенерировать через realText
       'NAME_IN_CATALOG' => 'realText(50)',
       
       // В свойство PROPERTY_URL сгенерировать домен
       'URL' => 'freeEmailDomain'

       '*IBLOCK_SECTION_ID' => 'randomSection'
       
       // Сгенерировать 10 элементов
   ])->generate(10);
   
echo '<pre>';  
print_r($result);  
echo '</pre>';  
?>

Доступные способы для генерации:

  • inn // ИНН
  • name // Имя
  • kpp
  • address
  • realText(100)
  • word
  • city
  • country
  • phoneNumber
  • company
  • email
  • streetAddress
  • date
  • time
  • year
  • jobTitle
  • numberBetween(0, 1000)
  • randomElement(1,2,3,4)
  • lastName
  • firstName
  • latitude
  • longitude
  • hexcolor
  • image
  • image(1000, 500) // Ширина, высота
  • randomSection // Привязать элемент к случайной секции инфоблока
  • ...прочие функции из faker'a

About

Модуль для генерации тестовых элементов для 1С Битрикс на основе Faker

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages