PHPackages                             x5hell/yaml-config - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. x5hell/yaml-config

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

x5hell/yaml-config
==================

config code generator from yaml config

v1.0.0(8y ago)1112MITPHPPHP &gt;=5.4.0

Since Apr 22Pushed 7y ago2 watchersCompare

[ Source](https://github.com/x5hell/yaml-config)[ Packagist](https://packagist.org/packages/x5hell/yaml-config)[ RSS](/packages/x5hell-yaml-config/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (3)Used By (0)

yaml\_config
============

[](#yaml_config)

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

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

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

Unknown

Total

1

Last Release

2940d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3681be8f147c64767aa73be6da49a6be06eface3cebdcaa51564026a87ab5c26?d=identicon)[x5hell](/maintainers/x5hell)

---

Top Contributors

[![4slv](https://avatars.githubusercontent.com/u/34535446?v=4)](https://github.com/4slv "4slv (30 commits)")[![x5hell](https://avatars.githubusercontent.com/u/5240238?v=4)](https://github.com/x5hell "x5hell (11 commits)")

### Embed Badge

![Health badge](/badges/x5hell-yaml-config/health.svg)

```
[![Health](https://phpackages.com/badges/x5hell-yaml-config/health.svg)](https://phpackages.com/packages/x5hell-yaml-config)
```

###  Alternatives

[pharaonic/php-dot-array

Access array data quickly/easily using dot-notation and asterisk.

1011.6k3](/packages/pharaonic-php-dot-array)

PHPackages © 2026

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