xervice/yaml-config

1.0.0 2018-07-28 19:00 UTC

This package is auto-updated.

Last update: 2024-03-29 03:39:08 UTC


README

Build Status Scrutinizer Code Quality Code Coverage

Parse Yaml files to Config-DataProvider.

Installation

composer require xervice/yaml-config

Configuration

To parse the config file, you have to define Hydrator-Classes implements \Xervice\YamlConfig\Business\Hydrator\HydratorInterface.

<?php

namespace App\MyModule\Business\Hydrator;

use DataProvider\DockerConfigDataProvider;
use Xervice\YamlConfig\Business\Hydrator\HydratorInterface;
use Xervice\Core\Locator\AbstractWithLocator;

/**
 * @method \App\MyModule\MyModuleFactory getFactory()
 */
class MyHydrator extends AbstractWithLocator implememts HydratorInterface
{
    /**
     * @param array $data
     * @param \DataProvider\YamlConfigDataProvider $dataProvider
     *
     * @return \DataProvider\YamlConfigDataProvider
     * @throws \Xervice\YamlConfig\Business\Exception\ConfigException
     */
    public function hydrateConfig(array $data, DockerConfigDataProvider $dataProvider): DockerConfigDataProvider
        {
            if (isset($data[MyModuleConfig::CONFIG_NAME])) {
                $dataProvider = $this->getFactory()->createMyModuleHydrator(
                    $data[MyModuleConfig::CONFIG_NAME],
                    $dataProvider
                )->hydrate();
            }

            return $dataProvider;
        }
}

Using

$configFile = new YamlConfigFileDataProvider();
$configFile->setPath(__DIR__ . '/data/my_config.yml');

$fileList = new YamlConfigFileListDataProvider();
$fileList->addFile($configFile);

$config = $yamlConfigFacade->getYamlConfig($fileList); // YamlConfigDataProvider