xervice / yaml-config
1.0.0
2018-07-28 19:00 UTC
Requires
- php: >=7.1.0
- symfony/yaml: ^4.1.1
- xervice/data-provider: ^1.4.4
Requires (Dev)
This package is auto-updated.
Last update: 2025-03-01 00:18:35 UTC
README
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