2017 © Pedro Peláez
 

library yaml-config

config code generator from yaml config

image

x5hell/yaml-config

config code generator from yaml config

  • Tuesday, May 29, 2018
  • by x5hell
  • Repository
  • 1 Watchers
  • 0 Stars
  • 1 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

yaml_config

  • Модуль позволяет сгенерировать ООП код конфига из yaml-файла.

Например, из yaml-файла:, (*1)

family: # семья
  father: # отец
    name: Bob # имя
    hobby: # хобби
      - sport # спорт
      - boardgames # настольные игры
    story: | # биография
      родился в Бафало: # место рождения
      учился в церковно-приходской школе
  doter: # дочь
    name: Mila # имя
    age: # возраст
      '2017-04-17': 0
      '2018-04-17': 1
      '2019-04-17': 2
  • модуль сгенерирует php-код, который, будет позволять обращаться к значениям конфига в ООП-стиле:
$config = new Config($date);
$fatherName = $config
    ->getFamily()
    ->getFather()
    ->getName();

Переменная $fatherName будет содержать значение Bob., (*2)

  • Модуль позволяет создавать свойства с ограниченным сроком действия, например, в вышеуказанном yaml-файле обращение к свойству family.doter.age будет зависеть от переданной в конструктор даты:
$dateList = [
    '2018-04-17',
    '2019-09-12',
    '2017-09-01'
];
foreach($dateList as $date){
    $dateTime = new DateTime($date);
    $config = new Config($dateTime);
    $doterAgeList[] = $config
        ->getFamily()
        ->getDoter()
        ->getAge();
}

Переменная $doterAgeList содержит массив: [1,2,0], (*3)

  • Создаваемый модулем php-код будет содержать phpDoc-комментарии, соответствующие комментариям в yaml-файле

Как использовать

use YamlConfig\CodeGenerator\ConfigGenerator;

$configGenerator = new ConfigGenerator();
$configGenerator
    ->setProjectPath($rootDir) // путь к папке проекта
    ->setConfigRelativePath($organizationsRelativePath) // относительный путь расположения yaml-файл с настройками
    ->setConfigCodeRelativePath($organizationsCodeRelativePath) // относительный путь к папке в которой будут сгенерирован код конфига
    ->setConfigName('Family') // название класса конфига
    ->setConfigNamespace('Config\Family') // пространство имён конфига
    ->generate(); // Генерация кода конфига

Особенности функции generate: 1) Если изменений в исходном конфиге (по сравнению со сгенерированным кодом) нет, то перегенерация не происходит. 2) В качестве необязательного параметра generate принимает функцию, которая будет вызвана после генерации кода., (*4)

The Versions

29/05 2018

dev-master

9999999-dev

config code generator from yaml config

  Sources   Download

MIT

The Requires

 

by Alexey Dobrynin

23/05 2018

dev-patch-1

dev-patch-1

config code generator from yaml config

  Sources   Download

MIT

The Requires

 

by Alexey Dobrynin

22/04 2018

v1.0.0

1.0.0.0

config code generator from yaml config

  Sources   Download

MIT

The Requires

 

by Alexey Dobrynin