定制 x5hell/yaml-config 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

x5hell/yaml-config

Composer 安装命令:

composer require x5hell/yaml-config

包简介

config code generator from yaml config

README 文档

README

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

Например, из yaml-файла:

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.

  • Модуль позволяет создавать свойства с ограниченным сроком действия, например, в вышеуказанном 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]

  • Создаваемый модулем 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 принимает функцию, которая будет вызвана после генерации кода.

统计信息

  • 总下载量: 11
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 2
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-04-22

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固